我有这个网址
http://localhost/sahara/product.php?action=viewcat
http://localhost/sahara/product.php?action=viewsubcat&catparent=40
和htaccess是
RewriteRule product-action-(.*)\.html$ product.php?action=$1
RewriteRule product-action-(.*)-catparent-(.*)\.html$ product.php?action=$1&catparent=$2
然后当我调用重写网址时,只有第一个代码正常工作
http://localhost/sahara/product-action-viewcat.html ---> it's work
http://localhost/sahara/product-action-viewsubcat-catparent-40.html ---> it's not work
我的脚本的htaccess正确代码是什么 感谢
答案 0 :(得分:0)
这是因为URI /sahara/product-action-viewsubcat-catparent-40.html
也匹配第一个模式:product-action-(.*)\.html$
。正则表达式的(.*)
部分与所有内容匹配,与URI的viewsubcat-catparent-40
部分匹配。
您需要使表达式更具限制性,或者更改两个规则的顺序:
更具限制性(类似这样):
RewriteRule product-action-([a-z]+)\.html$ product.php?action=$1 [L]
RewriteRule product-action-([a-z]+)-catparent-([0-9]+)\.html$ product.php?action=$1&catparent=$2 [L]
或者只是颠倒顺序:
RewriteRule product-action-(.*)-catparent-(.*)\.html$ product.php?action=$1&catparent=$2
RewriteRule product-action-(.*)\.html$ product.php?action=$1