我是新的。htaccess,所以这似乎是一个明显的问题我有以下重写规则
RewriteEngine On
RewriteBase /
RewriteCond %{THE_REQUEST} s/+Category.php?Category=([^s&]+) [NC]
RewriteRule ^ %1? [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/?$ Category.php?Category=$1 [L,QSA]
我想添加一个类似的规则到产品页面,像这样:
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]
然而,当这两个在。htaccess文件中,它不工作,只有第一个规则将工作,第二个规则将给出一个错误。
为了进一步说明,可以这样设置规则:
RewriteEngine On
RewriteBase /
RewriteCond %{THE_REQUEST} s/+Category.php?Category=([^s&]+) [NC]
RewriteRule ^ %1? [R=301,L]
RewriteCond %{THE_REQUEST} s/+product.php?id=([^s&]+) [NC]
RewriteRule ^ %1/p/? [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/p/?$ product.php?id=$1 [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/?$ Category.php?Category=$1 [L,QSA]