php - 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
解决方案
推荐阅读
- redux - 为什么我会收到“错误:操作必须是普通对象。使用自定义中间件进行异步操作。” 错误?
- javascript - 优化 JavaScript
- c# - .NET Core MVC - 节省花在任务上的时间
- mysql - 如何有效地只在 WITH RECURSIVE 语句中保留最新的行?
- doctrine-orm - Doctrine 2 ZF3 自引用实体未更新父项的所有字段
- events - VB6 自定义 OCX 与另一个 OCX 事件/方法集成
- java - 如何在 Java 中将 JFrame 图像带到我的窗口前面?
- android - 使用推送通知在 android 中打开特定页面
- java - 如何在@BlobOutput 中动态定义“路径”?
- json - 谷歌浏览器控制台中的错误