从www重定向到非www,但有例外

时间:2019-03-08 22:41:19

标签: iis url-rewriting url-redirection

我想使用IIS URL重写模块创建规则。我想将所有页面从www.mydomain.com重定向到mydomain.com

但是,该站点上有些页面我不喜欢重定向。这些页面是

  1. www.mydomain.com/mail/default.asp
  2. www.mydomain.com/mail2/default.aspx

这是到目前为止的代码

                <rule name="Force non-WWW" enabled="true" stopProcessing="true">
                <match url="(.*)" />
                <conditions>
                    <add input="{HTTP_HOST}" pattern="^(www\.)(.*)$" />
                    <add input="{REQUEST_URI}" pattern="^/mail/(.*)" negate="true" />
                    <add input="{REQUEST_URI}" pattern="^/mail2/(.*)" negate="true" />
                </conditions>
                <action type="Redirect" url="https://{C:2}/{R:1}" />
            </rule>

但是,如果启用此规则并转到www.mydomain.com/page,则会出现500错误。

我的代码有什么问题?

1 个答案:

答案 0 :(得分:0)

只需添加条件<add input="{REQUEST_URI}" pattern="/some-url/(.*)" negate="true" />。您可以使用以下规则:

 <rule name="Force non-WWW" enabled="true" stopProcessing="true">
                <match url="(.*)" />
                <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
                    <add input="{REQUEST_URI}" pattern="/mail/(.*)" negate="true" />
                    <add input="{HTTP_HOST}" pattern="(www\.)(.*)$" />
                </conditions>
                <action type="Redirect" url="http://{C:2}/{R:1}" appendQueryString="true" />
            </rule>

关于, 贾帕。