IIS 7规范URL重定向
我想让一个网站的地址中始终有www,并通过IIS重写强制执行它 例如,test.com将变成www.test.com 重写规则的典型示例为:IIS 7规范URL重定向,iis,url-rewriting,rewrite,iis-7.5,Iis,Url Rewriting,Rewrite,Iis 7.5,我想让一个网站的地址中始终有www,并通过IIS重写强制执行它 例如,test.com将变成www.test.com 重写规则的典型示例为: <rule name="Canonical Host Name" stopProcessing="true"> <match url="(.*)" /> <conditions> <add input="{HTTP_HOST}" negate="true" pattern="^www\.test\.
<rule name="Canonical Host Name" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" negate="true" pattern="^www\.test\.com$" />
</conditions>
<action type="Redirect" url="http://www.test.com/{R:1}" redirectType="Permanent" />
</rule>
然而,这需要我输入我的网站的完整url。它不适用于具有URL(如www.test.dev和www.test.stage)的开发和登台环境
是否可以创建一个IIS重写规则来处理所有这些情况?您是对的,完整的URL需要在web.config中。不过你有选择
我会选择第一种。您可以在此处找到有关配置转换的信息:我有另一个解决方案供您使用:
<rule name="Canonical domain name" enabled="true" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" negate="true" pattern="^www\.([.a-zA-Z0-9]+)$" />
</conditions>
<action type="Redirect" url="http://www.{HTTP_HOST}/{R:0}" appendQueryString="true" redirectType="Permanent" />
</rule>
我还建议您在本地环境中进行另一种测试:
127.0.0.1 www.example.com
iisreset
现在您可以在映射到本地主机的浏览器中使用www.example.com了我尝试了这个规则,但它不适用于IP地址URL。问题在于,negate=“true”类型规则捕获前缀为
http://www.
如果您使用的是visual studio,配置转换将有助于解决测试/部署问题。