Iis 仅在服务器上进行规范重定向

Iis 仅在服务器上进行规范重定向,iis,redirect,url-rewriting,web-config,Iis,Redirect,Url Rewriting,Web Config,我可以重定向www.domain.com上的所有domain.com-s,它在服务器上工作得很好: <rewrite> <rules> <rule name="Canonical Host Name" stopProcessing="true"> <match url="(.*)" /> <conditions> <add in

我可以重定向www.domain.com上的所有domain.com-s,它在服务器上工作得很好:

<rewrite>
    <rules>
        <rule name="Canonical Host Name" stopProcessing="true">
            <match url="(.*)" />
            <conditions>
                <add input="{HTTP_HOST}" negate="true" pattern="^www\.domain\.com$" />
            </conditions>
            <action type="Redirect" url="http://www.domain.com/{R:1}" redirectType="Permanent" />
        </rule>
    </rules>
</rewrite>

但是is有一个副作用——当我在测试环境中时,它也可以工作,比如在本地主机上,并且它总是在生产服务器上重定向


如何才能添加一些仅在服务器上工作的条件?

这可以通过使用第二个条件来实现,该条件要求主机成为
域.com
子域:

<rewrite>
    <rules>
        <rule name="Canonical Host Name" stopProcessing="true">
            <match url="(.*)" />
            <conditions>
                <add input="{HTTP_HOST}" pattern="domain\.com$" />
                <add input="{HTTP_HOST}" negate="true" pattern="^www\.domain\.com$" />
            </conditions>
            <action type="Redirect" url="http://www.domain.com/{R:1}" />
        </rule>
    </rules>
</rewrite>

(请注意,您的状况中缺少一个
\
,并且
redirectType=“Permanent”
是可选的)