繁体   English   中英

PHP 标头位置重定向到 http 而不是 https

[英]PHP header location redirect going to http instead of https

我在开发服务器上使用 aws lightsail,在实时服务器上使用 beanstalk。 Lightsail 有 php 7.3,beanstalk 有 7.4。

我创建了一个链接,然后在 php 中读取并执行

header('Location: /i/'.$res[0]['code'])

基于传入的url。

初始链接类似于https://test.example.com/c/12ksskdad

该链接在生产 beanstalk 服务器上的域略有不同,并使用不同的 ssl 证书。

如果我从 Lightsail 服务器重定向链接,它会重定向到https://test.example.com/i/adfadf ,这是正确的。 如果我从生产 beanstalk 服务器重定向,对于某些浏览器,尤其是 iphone 浏览器,它会重定向到http://test.example.com/i/adfadf

它重定向到 http,而不是 https。 我应该能够使用完整的 url 路径来纠正这个问题,但是我们从不同的 url 运行,如果我不需要,我不想这样做。

有任何想法吗?

您可以检查您是否在 https $_SERVER["HTTPS"] 上,并且您可以使用 $_SERVER["SERVER_NAME"] 来传递实际的服务器名称,而无需对其进行硬编码:

header('Location: '. $_SERVER["HTTPS"] == 'on' ? 'https://' : 'http://' . $_SERVER["SERVER_NAME"] . '/i/'.$res[0]['code']);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM