我有两个网址,一个包含类别,另一个包含产品ID
类别网址
accessories/category-one/cat-two/cat-three/cat-four
产品网址
accessories/1234/product-name-here
当我尝试继续使用产品网址时,它会转到类别。
#Accessories page
RewriteRule ^accessories/?([a-z-]+)?/?([a-z-]+)?/?([a-z-]+)?/?([a-z-]+)?/? accessories.php?cat1=$1&cat2=$2&cat3=$3&cat4=$4 [L,QSA]
RewriteRule ^accessories/([0-9]+)/[a-z-]+/?$ accessories.product.php?productId=$1 [L,QSA]
修改 我改变了重写规则,打印出了GET变量,现在我得到了这个
Array
(
[cat1] =>
[cat2] =>
[cat3] =>
[cat4] =>
[productId] => 24015
)
留在类别页面
答案 0 :(得分:2)
您只需要撤销规则,因为第一个匹配您的产品网址(因为您的可选参数,它匹配accessories/
)。
现在看起来应该是这样的
RewriteRule ^accessories/([0-9]+)/[a-z-]+/?$ accessories.product.php?productId=$1 [L,QSA]
RewriteRule ^accessories/?([a-z-]+)?/?([a-z-]+)?/?([a-z-]+)?/?([a-z-]+)?/?$ accessories.php?cat1=$1&cat2=$2&cat3=$3&cat4=$4 [L,QSA]