我正在尝试为IIS 8.0 URL模块编写一个正则表达式,其中:
(网址 / en OR 网址以 / en / 开头 和 网址 不 包含 switchLanguage = true )
我的web.config中有以下规则......
<rule name="Remove Default Language" stopProcessing="true">
<match url="(^en$|^en/(.*)$)(?<!switchLanguage=true(.*))" />
<conditions>
</conditions>
<action type="Redirect" url="{R:1}" />
</rule>
...但是这会导致抛出500.52错误,并显示匹配语法无效的消息。
非常感谢任何帮助。
答案 0 :(得分:0)
我想出来了。似乎是我试图使用RegEx脚本完成太多任务。
以下规则有效 - 请注意否定条件。
<rule name="Remove Default Language" stopProcessing="true">
<match url="^en$|^en/(.*)$" />
<conditions>
<add input="{QUERY_STRING}" pattern="switchlanguage=true" negate="true" ignoreCase="true" />
</conditions>
<action type="Redirect" url="{R:1}" />
</rule>