.htaccess - AWS ELB 在没有 index.php 的情况下将 HTTP 重定向到 HTTPS

标签 .htaccess amazon-web-services ssl amazon-elastic-beanstalk amazon-elb

我正在使用 AWS Elastic Beanstalk 在某些 EC2 实例上通过负载均衡器托管我的网站。

我正在使用 OctoberCMS(一种类似 laravel 的框架)

我已经通过 AWS Certificate Manager 在我的 ELB 上设置了 SSL 证书,一切正常。

但是有个问题。

我想将 HTTP 重定向到 HTTPS。

根据 AWS,我得到了一个小的 .htaccess 片段来完成这项工作:

Redirect to HTTPS
RewriteCond %{HTTP:X-Forwarded-Proto} =http
RewriteRule . https://%{HTTP:Host}%{REQUEST_URI} [L,R=permanent]

但是,当用户到达 http://mywebsitesite.com 时,他们将转到 https://mywebsitesite.com/index.php 因此他们开始浏览以 https://mywebsitesite.com/index.php/someresource 的方式。

此外,如果您转到 http://mywebsitesite.com/someresource,您将被重定向回 https://mywebsitesite.com/index.php

这不是一个好的体验,我知道之前肯定有人遇到过这个并且能够正确地重定向到资源并删除 index.php

我的 ELB 监听器默认配置为 80 --> 80 和 443 --> 80

注意:我没有遇到重定向循环。

最佳答案

我会在这个答案的开头说这是来自 Tomcat Elastic Beanstalk 的代码,但我相信它应该仍然有效。

我的配置代码文件中有:

RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R,L]

这是配置 Apache 代理的 .ebextensions 文件的一部分,在我的例子中,它位于 Tomcat 的前面。

关于.htaccess - AWS ELB 在没有 index.php 的情况下将 HTTP 重定向到 HTTPS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47086370/

相关文章:

apache - .htaccess 删除 URL 扩展,添加尾部斜线

javascript - AWS S3 使用预签名 URL 验证用户访问?

java - 在没有证书的 https 上的 java SSL 中

powershell - 验证本地计算机证书

php - Codeigniter 删除 Nginx 上的 index.php

.htaccess 友好的 URL

php - Opencart 重定向到 www.localhost.com

amazon-web-services - 我可以仅在 SQS 中的消息计数达到目标值时触发 lambda 吗?

Python 博托 : filter on tag and value

powershell - 通过 SSL 证书和 powershell 创建 https 绑定(bind)时的 "IIS: Cannot create a file when that file already exists.Exception.Message"