IIS URL重写规则的正确regex语法是什么,其中URL不包含字符串?

时间:2015-12-17 17:38:38

标签: regex iis url-rewrite-module

我正在尝试为IIS 8.0 URL模块编写一个正则表达式,其中:

(网址 / en OR 网址以 / en / 开头 网址 包含 switchLanguage = true

我的web.config中有以下规则......

<rule name="Remove Default Language" stopProcessing="true">
    <match url="(^en$|^en/(.*)$)(?&lt;!switchLanguage=true(.*))" />
    <conditions>
    </conditions>
    <action type="Redirect" url="{R:1}" />
</rule>

...但是这会导致抛出500.52错误,并显示匹配语法无效的消息。

非常感谢任何帮助。

1 个答案:

答案 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>