IIS自动重定向从http到https在某些情况下不起作用

时间:2018-04-09 09:22:01

标签: http redirect iis https

我正在尝试配置我的网站,所以如果用户以不安全模式访问该页面,他将自动重定向到https。

使用重写模块:https://blogs.technet.microsoft.com/dawiese/2016/06/07/redirect-from-http-to-https-using-the-iis-url-rewrite-module/

bellow是我的代码段

{
    "actions": [],
    "approvals": [],
    "expand": "",
    "messages": [],
    "publishedState": {
        "colour": "#14892c",
        "final": true,
        "initial": false,
        "name": "Approved"
    },
    "state": {
        "colour": "#14892c",
        "final": true,
        "initial": false,
        "name": "Approved"
    },
    "states": [
        {
            "approvals": [
                {
                    "approvers": {
                        "minimum": "*"
                    },
                    "name": "Review"
                }
            ],
            "colour": "#FFAB00",
            "name": "In Progress",
            "taskable": true,
            "transitions": {
                "approved": "Approved"
            }
        },
        {
            "colour": "#14892c",
            "final": true,
            "name": "Approved",
            "transitions": {
                "updated": "In Progress"
            }
        }
    ],
    "tasks": [],
    "workflowName": "Simple approval workflow"
}

在某些情况下有效。

When the request is http then redirect to https

但有些情况下,它不起作用

When the request is http --> ok

我在客户端测试的两个案例(两者都是Chrome)。在我的服务器上,Firefox - >好的,IE - >不行。

我不知道解决这个问题,有人能给出一些。

谢谢。

更新。我尝试了许多解决方案,比如Victor Leontyev的答案,但他们没有工作。

enter image description here

结果是

enter image description here

1 个答案:

答案 0 :(得分:0)

根据您的屏幕截图。它只适合您,因为重定向缓存在您的PC上。 enter image description here 你的规则不正确。正确的规则应该是这样的:

<rewrite>
      <rules>
        <rule name="HTTP/S to HTTPS Redirect" enabled="true" stopProcessing="true">
            <match url="(.*)" />
            <conditions logicalGrouping="MatchAny">
                <add input="{HTTPS}" pattern="^off$" />
            </conditions>
            <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="SeeOther" />
        </rule>
      </rules>
</rewrite>