2个重写规则不能一起工作

时间:2017-09-13 19:21:13

标签: apache mod-rewrite url-rewriting

我的产品详情页面有重写规则,而不是网址

/product-detail.php?id=3765

相反:

/blue-jeans

这是重写规则:

RewriteRule ^([0-9a-zA-Z-]+)$ product-detail.php?slug=$1 [NC,L]

但是,我需要另一个区域经销商。只要我将其添加到我的.htaccess,产品详细信息规则就会停止工作,导航到产品时会显示空白页面。我怎样才能让他们都工作?

RewriteRule ^([0-9a-zA-Z-]+)$ dealers.php?slug=$1 [NC,L]

1 个答案:

答案 0 :(得分:1)

它是因为匹配的正则表达式是相同的,并且它们中的第一个匹配,所以你已经完成了。你需要一个包装php脚本,可以为你排序或在你的正则表达式中有一些其他标记来限制范围。例如,您可以说所有产品都在/产品下,所有经销商都在/经销商之下,然后执行以下操作:

  RewriteRule ^/dealers/([0-9a-zA-Z-]+)$ /dealers.php?slug=$1 [NC,L]
  RewriteRule ^/products/([0-9a-zA-Z-]+)$ /products.php?slug=$1 [NC,L]