我有一个在HTTP和HTTPS上运行的MVC4应用程序。基本上我想确保所有非www请求直接到www。版本,无论他们使用什么协议。我正在努力在URL Rewrite中定义这个,因为我的web.config规则在将以下代码添加到<server.webserver>
节点时无法加载网站
<rewrite>
<rules>
<rule name="Redirect to www" stopProcessing="true">
<match url="(.*)" />
<conditions trackAllCaptures="false">
<add input="{HTTP_HOST}" pattern="^domain.com$" />
</conditions>
<action type="Redirect"
url="{MapProtocol:{HTTPS}}://www.domain.com/{R:1}" />
</rule>
</rules>
<rewriteMaps>
<rewriteMap name="MapProtocol">
<add key="on" value="https" />
<add key="off" value="http" />
</rewriteMap>
</rewriteMaps>
</rewrite>
有关如何在IIS中创建重定向的任何建议都很棒
答案 0 :(得分:2)
当我使用IIS添加此类规则时,会将其添加到Web.config:
<rewrite>
<rules>
<rule name="CanonicalHostNameRule">
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" pattern="^www\.domain\.com$" negate="true" />
</conditions>
<action type="Redirect" url="http://www.domain.com/{R:1}" />
</rule>
</rules>
</rewrite>
在条件的模式部分,您有^domain.com$
而我有^www\.domain\.com$