我想让一个网站总是在地址中有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\.com$" />
</conditions>
<action type="Redirect" url="http://www.test.com/{R:1}" redirectType="Permanent" />
</rule>然而,这需要我输入我的网站的完整网址。它不适用于具有www.test.dev和www.test.stage等URL的开发和登台环境。
是否可以创建一个IIS重写规则来处理所有这些情况?
发布于 2011-05-03 02:00:21
您说得对,完整的网址需要在web.config中。不过,你还是有选择的。
您可以使用配置转换来使正则表达式与正确的environment.
我选择选项1。你可以在这里找到关于配置转换的信息:http://msdn.microsoft.com/en-us/library/dd465326.aspx
发布于 2011-08-06 04:22:35
我有另一个解决方案给你:
<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>发布于 2015-03-05 16:53:50
我还建议您在本地环境中测试的另一种变体:
添加到c:\Windows\System32\drivers\etc\hosts:的
127.0.0.1 www.example.com
iisreset,->
现在您可以在映射到本地主机的浏览器中使用www.example.com了
https://stackoverflow.com/questions/5857118
复制相似问题