【问题标题】:IIS 7.5 URL Redirect for specific patterns针对特定模式的 IIS 7.5 URL 重定向
【发布时间】:2012-05-12 18:57:09
【问题描述】:

当用户进入 domain.com 时,它应该重定向到我的应用程序 https://www.domain.com。目前它没有发生,它显示一个页面“此连接不受信任”。

我在 web.config 中添加了以下重写标签:

        <rewrite>
           <rules>
            <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>
       </rules>
    </rewrite>

目前在我的 IIS 7.5 中,我添加了入站规则,我的设置如下:

  1. 在匹配网址中

    请求的 URL:匹配模式

    使用:正则表达式

    模式:(.*)

    忽略大小写:选中

  2. 条件

    逻辑分组:匹配所有

    输入:{HTTPS}

    类型:匹配模式

    模式:^OFF$

    跨条件跟踪组:未选中

  3. 动作

    动作类型:重定向

    重定向网址:https://{HTTP_HOST}/{R:1}

    追加查询字符串:选中

    重定向类型:查看其他 (303)

如果可以对现有设置进行任何更改,请告诉我。

提前致谢。

【问题讨论】:

  • 如果我输入 URL 作为 www.domain.com 它工作正常,因为它正确重定向到domain.com。但是,如果我将 URL 输入为 domain.com,它会将错误页面显示为“连接不受信任”。这是因为我正在使用 https。

标签: iis url-rewriting iis-7.5


【解决方案1】:

您的重写规则只是重定向到同一个域。因此,如果用户只输入domain.com(默认为http),它将重定向到https://domain.com。如果您的 SSL 证书不包含domain.com,而仅包含www.domain.com,则会导致浏览器提示有关错误证书的警告。尽管现在大多数证书颁发机构都颁发带有和不带有 www 的域的证书(但也许你的不是)。

如果您希望用户始终使用https://www.domain.com(始终使用 www),您应该使用以下重写规则:

<rule name="Force HTTPS" stopProcessing="true">
    <match url="(.*)" />
    <conditions logicalGrouping="MatchAll">
        <add input="{HTTPS}" negate="true" pattern="^ON$" />
        <add input="{HTTP_HOST}" negate="true" pattern="^www\.domain\.com$" />
    </conditions>
    <action type="Redirect" url="https://www.domain.com{REQUEST_URI}" appendQueryString="false" redirectType="Permanent" />
</rule>

它将强制使用 SSL 并将 www.domain.com 强制作为主机标头。如果不是,它将发出永久重定向(= 更好)到相同的 URL。

【讨论】:

    猜你喜欢
    • 2012-01-18
    • 2013-12-27
    • 1970-01-01
    • 2011-08-07
    • 2016-11-18
    • 1970-01-01
    • 2012-08-05
    • 2013-05-02
    • 2011-05-02
    相关资源
    最近更新 更多