达到第二次重写规则的问题:第一次过于笼统吗?

时间:2010-02-07 17:12:01

标签: regex mod-rewrite

如上所述,如果我打电话,例如/柏林它正确路由,但如果我尝试/berlin-blabla-50-prozent-rabatt.html它也采取第一个规则,我不知道如何否定正则表达式告诉它是否有“ - ”或类似的东西拿第二个。我也有一个问题,如果我把尾随/它也打破了,我是否必须添加第三条规则来覆盖尾随/? 每一个帮助都赞赏!

RewriteRule ^(.*)$ /dev/index.html?city=$1 [NC,R]
RewriteRule ^(.*)-(.*)-50-prozent-rabatt.html$ /dev/index.html?city=$1&deal=$2 [NC,L,R]

提前致谢!

2 个答案:

答案 0 :(得分:1)

第一条规则捕获了所有内容,因此它永远不会继续执行任何其他规则。

切换规则。抓住一切的规则总是最后的。

答案 1 :(得分:0)

最终这对我有用:

RewriteRule ^(.{1,15})$ index.html?city=$1 [NC]
RewriteRule ^(.*)-(.*)-(.*)-prozent-rabatt.html$ index.html?city=$1&deal=$2 [NC,L]