我在提供的共享主机上收到了我的ssl证书并成功安装了它。证书是为mysite.com准备的,不是为* .mysite.com准备的。 我希望网站可以像https:// mysite.com一样访问 - 没有www,没有http(只有安全连接)。我在这里找到了类似的问题,但不是正确的问题。 我正在使用IIS 7,.net环境。我的web.config中添加了以下规则:
<rule name="Remove WWW prefix">
<match url="(.*)" ignoreCase="true" />
<conditions>
<add input="{HTTP_HOST}" pattern="^www\.mysite\.com" />
</conditions>
<action type="Redirect" url="https://mysite.com/{R:1}" redirectType="Permanent" />
</rule>
<rule name="Redirect to HTTPS">
<match url="(.*)" />
<conditions>
<add input="{SERVER_PORT}" pattern="443" negate="true" />
</conditions>
<action type="Redirect" url="https:// mysite.com/{R:1}" />
一切正常,但网址https://www.mysite.com未重定向到https://mysite.com。我得到的错误是证书是针对mysite.com(有意:),消息来自firefox)以及添加异常的建议。
我的问题是这个网址的适当规则是什么?
提前感谢您的时间。
答案 0 :(得分:1)
阅读Omar Al Zabir撰写的这篇文章:http://omaralzabir.com/redirecting-traffic-from-http-to-https-with-zero-coding-in-iis/
然后看到我的(汤姆·钱特勒)评论他的帖子。
答案 1 :(得分:1)
这两条规则对我有用。
<rule name="Remove WWW" stopProcessing="true">
<match url="^(.*)$" />
<conditions>
<add input="{HTTP_HOST}" pattern="^(www\.)(.*)$" />
</conditions>
<action type="Redirect" url="http://mysite.com{PATH_INFO}" redirectType="Permanent" />
</rule>
<rule name="Redirect to HTTPS" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="^OFF$" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="SeeOther" />
</rule>
补充阅读:
http://keyvan.io/remove-www-prefix-from-urls-with-url-rewrite-module-for-iis-7-0
答案 2 :(得分:0)
不幸的是,我不认为你能做到这一点。您需要https://www.mysite.com上的有效SSL证书才能重定向到https://mysite.com,而不会向用户发出有关无效证书的警告。在URL Rewrite有机会对其进行操作之前,IIS将尝试协商SSL连接。
您可以使用DNS条目执行此操作。您可以添加如下所示的CNAME条目:
www.mysite.com. CNAME mysite.com.