首页 文章

IIS 7.5 URL特定模式的重定向

提问于
浏览
0

当用户输入domain.com时,它应该重定向到我的应用程序https://www.domain.com . 目前它没有发生,它正在显示一个页面"This Connection is Untrusted."

我在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中我添加了入站规则,我有如下设置:

  • 在匹配网址中

请求的URL:匹配模式

使用:Reqular Expression

模式:( . *)

忽略案例:已检查过

  • 条件

逻辑分组:全部匹配

输入:

类型:匹配模式

图案:^ OFF $

跨越条件跟踪组:未选中

  • 行动

操作类型:重定向

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

附加查询字符串:选中

重定向类型:见其他(303)

如果可以对现有设置进行任何更改,请与我们联系 .

提前致谢 .

1 回答

  • 4

    您的重写规则只是重定向到同一个域 . 因此,如果用户只输入 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发出永久重定向(= beter) .

相关问题