在IIS8中执行URL重写,并需要有关正则表达式的帮助。
在这样的网址中:
mysite.com/wichita-2014-Honda-Ridgeline
以下表达式效果很好
^wichita-([^/-]+)-([^/-]+)-([^/-]+)$
分成简单的
/index.php?year={R:0}&make={R:1}&model={R:2}
效果很好。它打破了
mysite.com/wichita-2014-Honda-CR-V
请注意“CR-V”中的新短划线。到目前为止,解决方案是在更一般的规则之前有一个例外规则:
^wichita-([^/-]+)-([^/-]+)-CR-V$
我试过
^wichita-([^/-]+)-([^/-]+)-[a-zA-Z0-9\-]*$
但是返回三个匹配,R:0是整个URL!显然,这不是我想要的。
我必须想象有更好的方法。我还没有找到它,而且我对正则表达式并不强烈。
所以,总结一下:如果可能的话,我正在寻找一个正则表达式:
请帮忙吗?
答案 0 :(得分:0)
我使用^wichita-([^/-]+)-([^/-]+)-(.+)$
,并将捕获组R:1,R:2和R:3映射到/index.php?year={R:1}&make={R:2}&model={R:3}
.+
将前两个捕获组之后的所有内容捕获到最后一桶中的“任何进展”。