AWS amp; PHP: https website redirects to http when there is no slash at the end(AWSamp;PHP:当末尾没有斜杠时,HTTPS网站重定向到http)
问题描述
我们有一个在AWS上托管其IIS Web服务器的客户端。当导航到此服务器上的特定PHP Web应用程序时,如果末尾有斜杠,则不起作用,但如果没有斜杠,则不起作用。
这是有效的: https://example.com.au/application/ 但是,如果要在地址栏中输入以下内容: https://example.com.au/application 它将重定向到末尾带有斜杠的等效http地址: http://example.com.au/application/
http已通过防火墙禁用,因此结果为错误。
以下是Chrome调试器中的请求详细信息 因此,我的问题是,我的客户端需要检查什么才能确保不发生此重定向?或者,它不重定向到HTTP,而是重定向到HTTPS?其他信息:
- .NET Web应用程序似乎不会出现同样的问题。例如‘https://example.com.au/dotnetapp’不会重定向至‘http://example.com.au/dotnetapp/’.
- URL重写中未配置规则
- 触发HTTPS URL时,IIS日志显示请求,但不显示HTTP URL。 编辑:这似乎是由于浏览器缓存造成的。禁用浏览器缓存后,我可以在日志文件中看到301条目。
- "index.php"设置为默认文档
推荐答案
一个可能的原因是,php项目不知道安全连接处于活动状态,因此在添加斜杠时会将页面重定向到http版本。
PHP应用程序可以通过$_SERVER['SERVER_PORT']
、$_SERVER['REQUEST_SCHEME']
检测安全连接。但是,如果应用程序位于某个反向代理之后(例如,Varish或Amazon的弹性负载均衡器),则到PHP应用程序的连接可能不安全。应该通知PHP有关X-Forwarded-*
头的原始安全连接。
请检查PHP是否设置了以下变量:
$_SERVER['HTTP_X_FORWARDED_PROTO']
:应为https
,$_SERVER['HTTP_X_FORWARDED_PORT']
:应为443
。
symfony框架
如果应用程序使用的是框架(如symfony),则应将其配置为信任反向代理的IP并信任这些标头:
# config/packages/framework.yaml
framework:
# ...
# the IP address (or range) of your proxy
trusted_proxies: '192.0.0.1,10.0.0.0/8'
# trust *all* "X-Forwarded-*" headers
trusted_headers: ['x-forwarded-for', 'x-forwarded-host', 'x-forwarded-proto', 'x-forwarded-port']
# or, if your proxy instead uses the "Forwarded" header
trusted_headers: ['forwarded']
如果反向代理服务器的IP地址发生更改,请参阅https://symfony.com/doc/current/deployment/proxies.html了解更多详细信息,https://symfony.com/doc/current/deployment/proxies.html#but-what-if-the-ip-of-my-reverse-proxy-changes-constantly了解更多详细信息。
这篇关于AWS&;PHP:当末尾没有斜杠时,HTTPS网站重定向到http的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:AWS&;PHP:当末尾没有斜杠时,HTTPS网站重定向到http
基础教程推荐
- mysqli_insert_id 是否有可能在高流量应用程序中返回 2021-01-01
- 在多维数组中查找最大值 2021-01-01
- 如何在 PHP 中的请求之间持久化对象 2022-01-01
- XAMPP 服务器不加载 CSS 文件 2022-01-01
- 在 PHP 中强制下载文件 - 在 Joomla 框架内 2022-01-01
- 在 Woocommerce 中根据运输方式和付款方式添加费用 2021-01-01
- 通过 PHP SoapClient 请求发送原始 XML 2021-01-01
- 超薄框架REST服务两次获得输出 2022-01-01
- Libpuzzle 索引数百万张图片? 2022-01-01
- WooCommerce 中选定产品类别的自定义产品价格后缀 2021-01-01