htaccess问题用参数重写页面

时间:2014-09-07 20:27:04

标签: regex .htaccess mod-rewrite

我有两个网址,一个包含类别,另一个包含产品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
)

留在类别页面

1 个答案:

答案 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]