簡體   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