需要正则表达式帮助!

时间:2010-08-25 15:38:13

标签: regex iis-7 url-rewriting

我正在开发一个使用基于IIS7的网址重写的多语言应用程序。

我想要以下Url操作:

1. fr-ca > index.aspx?l=&lc=fr-ca
2. fr-ca/ > index.aspx?l=&lc=fr-ca
3. fr-ca/568/sometitle > index.aspx?l=568&lc=fr-ca
4. 568/sometitle > > index.aspx?l=568&lc=

基本上,初始fr-ca是可选的。

我目前的规则:

<match url="^(fr-ca.)?([^/][0-9]+)?/*" />

#1

失败

另一次尝试:

<match url="^(fr-ca)?(.[0-9]+)?/*" />

传递所有要求,但在这种情况下,后引用{R:2}给出/ 568除外。

我想我可以添加另一条规则,只添加一个/到fr-ca的结尾,但这似乎不正确。

感谢您的帮助!正则表达式让我疯狂。

2 个答案:

答案 0 :(得分:1)

你应该这样做吗?你可以实际检查Accept-Language标题,而不是看到他们点击了哪个网址(并重定向到我认为是网页的翻译版本),甚至可能从该ASP页面中查看。

这意味着他们从一开始就看到了他们想要看到的语言,而没有点击页面顶部那个愚蠢的小旗。它不依赖于GeoIP或用户交互。

检查出来。

答案 1 :(得分:0)

自己排序。

^(fr-ca)?/?([0-9]+)?

通过:

fr-ca
fr-ca/
fr-ca/9
fr-ca/9/
fr-ca/9/sometitle
fr-ca/9/sometitle/
fr-ca/9/sometitle/anothertitle

9
9/
9/sometitle
9/sometitle/
9/sometitle/anothertitle