IIS 7.5 HTTP 到 HTTPS 重定向
Posted
技术标签:
【中文标题】IIS 7.5 HTTP 到 HTTPS 重定向【英文标题】:IIS 7.5 HTTP to HTTPS redirect 【发布时间】:2013-05-02 02:00:24 【问题描述】:我正在尝试将所有 HTTP 请求重定向到 HTTPS。 这是我的 web.config:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<handlers accessPolicy="Read, Execute, Script" />
</system.webServer>
<system.webServer>
<rewrite>
<rules>
<clear />
<rule name="Redirect to https" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="HTTPS" pattern="off" ignoreCase="true" />
</conditions>
<action type="Redirect" url="https://HTTP_HOSTREQUEST_URI" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
我在 *** 上的另一篇文章中找到了这个示例: How to force HTTPS using a web.config file
当我保存该文件并尝试使用 http 访问我的网站时,它不会重定向到 https。
我认为该文件可能被忽略了,所以我在 web.config 中输入了一些不正确的语法,然后我收到了 500 错误——这意味着它确实在查看 web.config 文件。
我是否误解了上述配置应该做什么?我想将所有 HTTP 请求重定向到 HTTPS。
被重定向到的站点是 Tomcat 的虚拟目录(如果有影响的话)。
【问题讨论】:
【参考方案1】:试试这个:
<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>
【讨论】:
【参考方案2】:假设您已安装 URL 重写。 Click here for info/installation.
确保您在 IIS 管理器的 URL 重定向中配置了以下内容。
匹配网址部分
请求的 URL:匹配模式 使用:正则表达式 模式:(.*)
确保选中忽略大小写条件部分
逻辑分组:匹配所有 输入:HTTPS 类型:匹配模式 模式:^OFF$
动作部分
动作类型:重定向
动作属性
重定向网址:https://HTTP_HOST/R:1 确保选中“附加查询字符串”
重定向类型:查看其他 (303)
【讨论】:
据我所知,我正在为其执行此操作的软件不能进行 URL 重写。 Apache-Tomcat 不提供用于安装 URL 重写的 ActiveX 文件。 如果涉及第三方软件,必须在此线程的第一篇文章中提及,以及任何其他重要信息。上面的说明会将 HTTP 重定向到 HTTPS。以上是关于IIS 7.5 HTTP 到 HTTPS 重定向的主要内容,如果未能解决你的问题,请参考以下文章
尝试将 HTTP 重定向到 HTTPS(C#、IIS),但 HTTPS 在响应标头中转回 HTTP - 重定向循环