我创建了一个URL重写规则,以根据http://madskristensen.net/post/url-rewrite-and-the-www-subdomain
从传入请求中删除WWW这是直接来自我的web.config的规则:
<rewrite>
<rules>
<rule name="Remove WWW" patternSyntax="Wildcard" stopProcessing="true">
<match url="*" />
<conditions>
<add input="{CACHE_URL}" pattern="*://www.*" />
</conditions>
<action type="Redirect" url="{C:1}://{C:2}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
当我尝试打开www.mydomain.com时,FireFox会给我一个“损坏的内容错误”消息。如果我尝试在Chrome中打开它,则不会发生任何事情。
以下是Fiddler的回复标题:
HTTP/1.1 301 Moved Permanently
Content-Type: text/html; charset=UTF-8
Location: http://example.com:80:123.123.123.123/
Server: Microsoft-IIS/8.5
X-Powered-By: ASP.NET
Date: Mon, 07 Dec 2015 18:20:53 GMT
Content-Length: 167
回复机构:
<head>
<title>Document Moved</title>
</head>
<body>
<h1>Object Moved</h1>This document may be found <a HREF="http://example.com:80:123.123.123.123/">here</a>
</body>
注意端口和IP地址如何包含在位置中。 (我用123.123.123.123替换了我服务器的IP地址)
这会导致问题吗?如果是这样,为什么包含这些信息以及如何删除它?
我在安装URL Rewrite后重新启动了IIS。
答案 0 :(得分:0)
不是真正的解决方案,但我的解决方法......
我的网站设置为需要SSL,因此我并不需要为两种协议删除WWW的好处。
我更新了我的规则如下:
<rule name="Remove WWW and Redirect to HTTPS" enabled="true" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" pattern="^(www\.)(.*)$" />
</conditions>
<action type="Redirect" url="https://{C:2}/{R:1}" />
</rule>