Apache服务器:通过http标头重定向

时间:2016-06-11 15:44:49

标签: apache redirect

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

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

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

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

1 个答案:

答案 0 :(得分:0)

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

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

当您使用apache Redirect和Rewrite规则时,他们会设置响应标头并添加位置标头。我真的不知道你为什么要手动这样做。

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

最后,您不应该在HTTP响应上发送Strict-Transport-Security标头(并且浏览器会正确地忽略它),但仅限于HTTPS响应。