我可以在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>
但是有一个副作用 - 当我在测试环境中时,它也可以工作,就像在localhost上一样,它总是在生产服务器上重定向。
如何添加一些仅适用于服务器的条件?
答案 0 :(得分: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>
(请注意,您的条件中缺少\
且redirectType="Permanent"
是可选的)