IIS 7.5 URL重定向特定模式(IIS 7.5 URL Redirect for specif

2019-07-29 05:57发布

当用户输入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

    请求的URL:匹配模式

    使用:Reqular表达

    模式:(*)。

    忽略大小写:选中

  2. 条件

    逻辑分组:匹配所有

    输入:{} HTTPS

    类型:匹配模式

    图案:^ $ OFF

    横跨条件磁道组:未选中

  3. 行动

    动作类型:重定向

    重定向的URL:https:// {HTTP_HOST} / {R 1}

    追加查询字符串:检查

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

请让我知道,如果任何变化可以对现有设置进行更改。

提前致谢。

Answer 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。



文章来源: IIS 7.5 URL Redirect for specific patterns