【问题标题】:Apache Server: Redirection via http headersApache 服务器:通过 http 标头重定向
【发布时间】:2016-10-12 10:41:26
【问题描述】:

即使用户输入 http URL,我也试图强制浏览器使用 https。这个想法是使用来自服务器的 http 响应标头。我能够使用重定向(在 site.conf 中)和重写(普遍不喜欢)实现重定向,但也想测试这种方法。

现在我尝试将以下内容添加到我的 /etc/apache/sites-enabled/mysite.conf 中,但尽管浏览器接收到标头响应,但用户并未重定向到 https(显示默认 apache 页面):

标题集位置https://www.example.com/ 标头集 X-Forwarded-Proto:https 标头集 Strict-Transport-Security "max-age=180; includeSubdomains"

我是否必须更改 apache 配置中的其他任何内容才能实现此目的? (所有模块均已正确加载)

【问题讨论】:

    标签: apache redirect


    【解决方案1】:

    Location 标头仅用于重定向响应(HTTP 响应代码为 3XX)或 Created 响应(HTTP 响应代码为 201): https://www.rfc-editor.org/rfc/rfc7231#section-7.1.2

    只是在随机页面上设置标题不会使浏览器重定向。

    当您使用 apache 重定向和重写规则时,它们会设置响应标头并添加位置标头。我真的不知道您为什么要手动执行此操作。

    并且重写并不是“普遍不喜欢”。当重定向在很多情况下更简单、更有效时,它只是被过度使用了。如果您需要更复杂的东西,那么 Rewrite 是正确的工具。

    最后,您不应该在 HTTP 响应上发送 Strict-Transport-Security 标头(浏览器会理所当然地忽略它),而只能在 HTTPS 响应上发送。

    【讨论】:

    • 谢谢 我只是想“学习” apache 管理,所以不想错过任何技术。感谢您为我清理。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-16
    • 2021-04-14
    • 2013-05-07
    • 1970-01-01
    相关资源
    最近更新 更多