我已经在提供的共享主机上收到了ssl证书,并成功安装了它。证书是为mysite.com准备的,而不是为*.mysite.com准备的。我希望该网站是可访问的,像mysite.com -没有www,没有http (只有安全连接)。我在这里发现了类似的问题,但不是正确的问题。我使用的是IIS7,.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}" />
一切正常,但是url https://www.mysite.com没有被重定向到https://mysite.com。我得到的错误是证书是给mysite.com的(原意是:),消息来自火狐),并建议添加异常。
我的问题是,这个url的合适规则是什么?
提前感谢您的宝贵时间。
发布于 2011-06-20 02:59:23
不幸的是,我不认为你能做到这一点。您需要https://www.mysite.com上的有效SSL证书才能重定向到https://mysite.com,而不会警告用户证书无效。在URL重写有机会对SSL连接执行操作之前,IIS将尝试协商SSL连接。
您可以使用DNS条目来执行此操作。您可以添加一个CNAME条目,如下所示:
www.mysite.com. CNAME mysite.com.发布于 2011-06-21 03:27:10
编辑:对不起,我想我读错了你的帖子!我已经给了你一个自动从http转到https的规则。我把它留在这里,以防它帮助其他人(像我一样)也不识字,你可以调整它,使其适合您的情况。
请阅读这篇由Omar Al Zabir撰写的文章:http://omaralzabir.com/redirecting-traffic-from-http-to-https-with-zero-coding-in-iis/
然后看看我(Tom Chantler)对他帖子的评论。
发布于 2012-12-07 04:33:52
这两条规则对我很管用。
<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://www.jppinto.com/2010/03/automatically-redirect-http-requests-to-https-on-iis7-using-url-rewrite-2-0/
http://keyvan.io/remove-www-prefix-from-urls-with-url-rewrite-module-for-iis-7-0
https://stackoverflow.com/questions/6403988
复制相似问题