2

我可以重定向 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>

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

如何添加一些仅适用于服务器的条件?

4

1 回答 1

6

这可以使用请求主机成为domain.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>

(请注意,您的情况中缺少 a \,这redirectType="Permanent"是可选的)

于 2013-04-01T14:49:35.597 回答