首页 > 解决方案 > HTTP 到 HTTPS 重定向在 IIS 中不起作用

问题描述

我正在尝试在我的 PHP 网站中将所有使用 HTTP 的链接重定向到 HTTPS。我正在使用 IIS 服务器并有一个 web.config 文件来编写重定向规则。从多个博客尝试了一组不同的服务器规则后,当我没有找到解决方案时,我正在 Stack Overflow 上写一个问题。

当我实施以下规则时,我的网站会进入重定向循环。我怀疑 HTTP 到 HTTPS 重定向正在工作,但它无法添加 HTTPS 条件。这意味着,即使我请求 HTTPS URL,它也会被重定向并进入重定向循环。

<rule name="Redirect to https" enabled="true" stopProcessing="true">
  <match url="(.*)" />
  <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
    <add input="{HTTPS}" pattern="off" />
    <add input="{HTTP_HOST}" pattern="localhost" negate="true" />
  </conditions>
  <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" />
</rule>

这对服务器设置也有影响吗?在我的服务器变量中,我可以看到它说 HTTPS 已关闭。

[HTTPS] => off
[SERVER_PROTOCOL] => HTTP/1.1
[SERVER_SOFTWARE] => Microsoft-IIS/8.5

标签: phpredirectiisserver

解决方案


推荐阅读