繁体   English   中英

.htaccess用于相同的网址

[英].htaccess for identical url

我有这个网址

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

然后,当我调用重写URL时,只有第一个代码有效

http://localhost/sahara/product-action-viewcat.html ---> it's work 
http://localhost/sahara/product-action-viewsubcat-catparent-40.html ---> it's not work

我的脚本的htaccess的正确代码是什么?

这是因为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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM