即使用户输入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配置中的任何其他内容才能实现此目的? (所有模块都已正确加载)
答案 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响应。