重定向初始页面有效,但下一页显示浏览器中的旧URL

时间:2014-03-16 20:56:43

标签: php .htaccess

我有以下.htaccess代码:

RewriteEngine On
RewriteBase /


RewriteCond %{THE_REQUEST} \s/+Category\.php\?pageNum_RS_Search=([^\s&]+)&totalRows_RS_Search=([^\s&]+)&Category=([^\s&]+) [NC]
RewriteRule ^ /Compare/page/%1/%1/%1? [R=301,L]

RewriteCond %{THE_REQUEST} \s/+Category\.php\?Category=([^\s&]+) [NC]
RewriteRule ^ /Compare/%1? [R=301,L]

RewriteCond %{THE_REQUEST} \s/+product\.php\?id=([^\s&]+) [NC]
RewriteRule ^ %1? [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)?$ product.php?id=$1 [L,QSA]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^Compare/([^/]+)/?$ Category.php?Category=$1 [L,QSA]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^Compare/page/([^/]+)/([^/]+)/([^/]+)/?$ Category.php?pageNum_RS_Search=$1&totalRows_RS_Search=$2&Category=$3 [L,QSA] 

Category.php?Category = ..的重定向工作正常,但是当我想转到此类别的下一页时,请使用此代码将^ Compare / Category name保留到下一页给我 ^比较/ page / 1/1/1,结果下一页正在寻找类别1,它应该寻找类别类别名称。有没有办法表明: ^比较/ page / 1/8 /类别名称? 八个只是总行数,1显然是页码,类别是类别名称。 下一页是使用php使用dreamweavers导航栏创建的。 欢迎任何帮助

1 个答案:

答案 0 :(得分:0)

这是由于你的错误的第一条规则,你再次使用%1&再次代替%2%3

应该是这样的:

RewriteCond %{THE_REQUEST} \s/+Category\.php\?pageNum_RS_Search=([^&]+)&totalRows_RS_Search=([^&]+)&Category=([^\s&]+) [NC]
RewriteRule ^ /Compare/page/%1/%2/%3? [R=301,L]