将规则https:// www重写为https:// IIS7

时间:2011-06-19 17:31:29

标签: asp.net-mvc iis-7 ssl url-rewriting ssl-certificate

我在提供的共享主机上收到了我的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)以及添加异常的建议。

我的问题是这个网址的适当规则是什么?

提前感谢您的时间。

3 个答案:

答案 0 :(得分:1)

编辑:对不起,我想我误读了你的帖子!我给你一个规则,自动从http到https。我会留在这里,以防它帮助其他人(像我一样)也无法阅读,你可以调整它以使其适合你的情况。

阅读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://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

答案 2 :(得分:0)

不幸的是,我不认为你能做到这一点。您需要https://www.mysite.com上的有效SSL证书才能重定向到https://mysite.com,而不会向用户发出有关无效证书的警告。在URL Rewrite有机会对其进行操作之前,IIS将尝试协商SSL连接。

您可以使用DNS条目执行此操作。您可以添加如下所示的CNAME条目:

www.mysite.com.   CNAME   mysite.com.