【问题标题】:Forcing HTTPS and avoid duplicate URLS using IIS7 URL Rewrite Module使用 IIS7 URL 重写模块强制 HTTPS 并避免重复 URL
【发布时间】:2011-06-28 09:45:31
【问题描述】:

我需要将每个请求强制发送到 https://www.mysite.com(始终使用 https 和 www)

该网站托管在 GoDaddy 中,我需要通过 IIS7 URL 重写模块来完成。

我已经能够使用以下代码进行 HTTPS 重定向:

<system.webServer>
        <rewrite>
            <rules>
                <rule name="Canonical Host Name" stopProcessing="true">
                    <match url="(.*)" />

                    <conditions>
                        <add input="{HTTP_HOST}" pattern="^mysite\.com$" />
                    </conditions>

                    <action type="Redirect" url="https://www.mysite.com/{R:1}" redirectType="Permanent" />
                </rule>
            </rules>
        </rewrite>
</system.webServer>

测试用例

我猜我在浏览器中输入 www.mysite.com 时条件不满足,所以没有重定向,页面作为 HTTP 而不是 HTTPS。

我想我只需要修改条件模式,但我几乎没有任何正则表达式知识,我需要尽快这样做。

谢谢!

【问题讨论】:

    标签: asp.net redirect https url-rewriting


    【解决方案1】:

    emzero,我认为问题在于您的条件仅与 mysite.com 完全匹配:

    <conditions>
        <add input="{HTTP_HOST}" pattern="^mysite\.com$" />
    </conditions>
    

    注意模式:^mysite\.com$。这用英语表示,传入的 URL 必须以 mysite.com 开头并以 mysite.com 结尾,这意味着 www.mysite.com匹配。

    试试这个模式,它允许一个选项www.

    <conditions>
        <add input="{HTTP_HOST}" pattern="^(www\.)?mysite\.com$" />
    </conditions>
    

    编程愉快!

    【讨论】:

      猜你喜欢
      • 2010-11-06
      • 2023-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-18
      • 2016-10-20
      • 2011-02-16
      • 1970-01-01
      相关资源
      最近更新 更多