Перенаправления не работают после добавления динамического в статический код - PullRequest
0 голосов
/ 02 февраля 2012

Мы используем для нашего сайта электронной коммерции шаблоны ECT и установили код от программиста, который изменил динамический URL-адрес на статический.Однако у нас есть некоторые обратные ссылки, которые мы хотели бы перенаправить на соответствующую страницу (или мы согласились бы отправить их все на одну страницу «все продукты», которую мы настроили. Перенаправление, которое мы в настоящее время возвращаем, возвращает страницу с «Этот продукт был удален. "Не хорошо!

Вот код в файле htaccess для динамического и статического:

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

Вот код в handle_url.phpfile:

    <?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

Iтак что ценю любую помощь, которую вы можете мне оказать. Я признаю, что я немного не в себе с этим. Большое спасибо, Janell

1 Ответ

0 голосов
/ 02 февраля 2012

Попробуйте добавить следующее в файл .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]
...