我尝试重写我的产品页面的URL这是动态保持GET URL后变量改写
中的一个例子是:
product.php?id=780-1AC930D
和我试着将它改写为:
产品/ 780-1AC930D
我需要变量仍然通过网址,但目前它不适用于我。
我在的product.php
页面像这样的顶级重定向:
$prodID = $_GET['id'];
if(!isset($prodID) && $prodId == ""){
header('Location: http://www.***********.com') ;
}
else{
,我知道GET变量的心不是通过,因为它使我重定向。
我对的.htaccess文件的代码是这样的:
Options FollowSymLinks
RewriteEngine On
RewriteBase/
RewriteRule ^product/(.*)$ /product.php?id=$1 [QSA]
,为URL的HTML是:
<a href = "product/<?php echo $product[$i]['catID'];?>">
没有任何人有一个线索,为什么这个心不是工作?
编辑以提供更多信息。
这是我整个的.htaccess文件
Options FollowSymLinks
RewriteEngine On
RewriteBase/
RewriteRule ^product/(.*)$ /product.php?id=$1 [QSA]
## If the request is for a valid directory
RewriteCond %{REQUEST_FILENAME} -d [OR]
## If the request is for a valid file
RewriteCond %{REQUEST_FILENAME} -f [OR]
## If the request is for a valid link
RewriteCond %{REQUEST_FILENAME} -l
## don't do anything
RewriteRule^- [L]
RewriteRule ^([^/.]+)/([^/]+)/?$ /$1.php?cat=$2 [L,QSA]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+([^.]+)\.php\?cat=([^\s&]+)&subCat=([^\s&]+)\s [NC]
RewriteRule^/%1/%2/%3? [R=301,L]
RewriteRule ^([^/.]+)/([^/]+)/([^/]+)/?$ /$1.php?cat=$2&subCat=$3 [L,QSA]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+([^.]+)\.php\?cat=([^\s&]+)\s [NC]
RewriteRule^/%1/%2? [R=301,L]
# REMOVE PHP EXTENSIONS
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ $1.php [L,QSA]
我刚搬到RewriteRule ^product/(.*)$ /product.php?id=$1 [QSA]
从“#删除PHP扩展”到RewriteBase低于以上,它似乎解决我的问题。
其他重写规则适用于我的类别和子类别页面,然后再将其实际添加到产品页面。
所以我很好奇为什么把这个product.php行放在这个其他的东西上面呢?
你已经做过任何调试了吗?什么是错误信息? –
我没有收到错误消息。它只是重定向我,因为IF语句表明$ _GET ['id']不存在然后重定向。如果我把这个重定向出来然后它只是加载一个空白产品页面 – Kevlar
只是为了排除错别字,缓存重定向等,你看到'var_dump($ _ GET)'? – Brad