【问题标题】:Redirects not working after adding dynamic to static code将动态添加到静态代码后重定向不起作用
【发布时间】:2012-02-02 19:07:13
【问题描述】:

我们正在为我们的电子商务网站使用 ECT 模板,并安装了来自程序员的代码,将动态 url 更改为静态。但是,我们有一些反向链接希望重定向到正确的页面(或者我们会满足于将它们全部发送到我们设置的一个“所有产品”页面。我们当前的重定向返回一个页面,上面写着“该产品已被删除。”不好!

这是 htaccess 文件中用于动态到静态的代码:

RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule (.*)$ /handle_url.php [L]

这里是handle_url.php文件中的代码:

    <?php
  ob_start();
  session_start();
  include "vsadmin/db_conn_open.php";
  function sli_escape_string($estr){
    if(version_compare(phpversion(),'4.3.0')=='-1')        return(mysql_escape_string(trim($estr))); else return(mysql_real_escape_string(trim($estr)));
}
  $url = $_SERVER['REQUEST_URI'];
   $url = trim($url, "/");
  $pos = strpos($url,'?');
  if ($pos > 0){
$url = substr($url,0,$pos);
  }
  $pos = strpos($url,".");

  if ($pos > 0){
$urlspec = substr($url, 0, $pos);
  } else {
  }

$store_url = $url;  

  $sSQL = "SELECT pID FROM products WHERE pURL='" . sli_escape_string($url) . "'";
  $query = mysql_query($sSQL);

  if ($query && mysql_num_rows($query)>0){
$rs = mysql_fetch_assoc($query);
$_GET['prod']=$rs['pID'];
$explicitid=$rs['pID'];
include "proddetail.php";   
$plid = $explicitid;
  } else {
$sSQL = "SELECT sectionID, rootSection FROM sections WHERE     sectionURL='".sli_escape_string($url)."'";
  $query = mysql_query($sSQL);
if ($query && mysql_num_rows($query)>0){
    $rs = mysql_fetch_assoc($query);
    $_GET['cat']=$rs['sectionID'];
    $explicitid=$rs['sectionID'];
    $secid = $explicitid;
    if ($rs['rootSection']==1){
        include "products.php";     
    } else {
        include "categories.php";
    }
} else {
    include "content.php";
}
  }  
  // For sections we want the .html
  ?> 

这是我一直未能成功地用来将旧的动态链接发送到静态页面(没有换行符):

  redirect 301 /proddetail.php?prod=cooling-hydration-backpack-system http://www.veskimo.com/cooling-hydration-backpack-system.html

非常感谢您能给我的任何帮助。我承认我对此有点不知所措。 非常感谢, 贾内尔

【问题讨论】:

    标签: .htaccess dynamic redirect static


    【解决方案1】:

    尝试将以下内容添加到站点根目录中的.htaccess 文件中。

    RewriteEngine on
    RewriteBase /
    
    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /proddetail\.php\?prod=cooling-hydration-backpack-system [NC]
    RewriteRule ^ http://www.veskimo.com/cooling-hydration-backpack-system.html [L,R=301]
    

    【讨论】:

    • 非常感谢!那工作得很好。你真好,乐于助人!干杯,珍妮尔
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多