如何判斷一個php頁面是通過http還是https訪問的?PHP:HTTP或HTTPS?
回答
$protocol = strtolower(substr($_SERVER["SERVER_PROTOCOL"],0,5))=='https'?'https':'http';
$protocol = isset($_SERVER["HTTPS"]) ? 'https' : 'http';
這些應該都工作
在第二個版本中,HTTPS必須以大寫字母表示。 – Tim 2014-10-31 07:31:09
如果請求與HTTPS送你將在$_SERVER超全局一個額外的參數 - $ _ SERVER [「HTTPS」]。你可以檢查它是否設置或不
if(isset($_SERVER['HTTPS'])) {
您應該能夠發送通過檢查$_SERVER['HTTPS']
的值(它應該僅在使用https時設置)來執行此操作。
因此,如果我使用HTTPS並且服務器不創建$ _SERVER ['HTTPS'],那麼這是否意味着它是假的HTTPS? – PSyLoCKe 2013-10-14 01:08:28
這取決於PHP在您的環境中的位置會變得更加複雜,因爲您的問題非常廣泛。這可能取決於是否有負載平衡器以及它是如何配置的。下面是幾個相關問題:
如果您的請求是通過HTTPS發送您將有一個名爲 'HTTPS'
if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off') { //HTTPS }
在IIS中使用ISAPI時應該使用此答案。 – 2014-09-18 10:53:19
- 1. PHP:HTTP基本 - 註銷
- 2. Mercurial - HTTPS或SSH?
- 3. HTTP或HTTPS錯誤
- 4. PHP:Http請求從遠程服務器失敗
- 5. PHP:HTTP GET/POST在一個真正的異步方式
- 6. 什麼更安全? VNC或Citrix或HTTPS
- 7. Spock或Wai/Warp和HTTPS
- 8. Magento的CDN HTTP或HTTPS
- 9. 如何刮SSL或HTTPS URL
- 10. 使用SAML和https或http
- 11. 更改http://或https://到// cdn
- 12. C++ Winsock確定HTTP或HTTPS
- 13. Laravel會話在切換協議(https到http或http到https)時不工作(https到http或http到)
- 14. 告訴我我選擇了哪些服務https://redpen.io/或https://maquetter.com?
- 15. htaccess的:重定向HTTP到HTTPS或https爲http取決於URL
- 16. laravel或AWS不檢測我的https
- 17. 從當前URL獲取HTTP或HTTPS
- 18. 如何從https://android.googlesource.com獲取camera.git或gallery.git?
- 19. 在IIS中啓用Http或Https請求
- 20. 確保www。或https域名前
- 21. 請求URL以HTTP或HTTPS在C#
- 22. 如何檢索URL協議(「http」或「https」)?
- 23. 使用的.htaccess強制HTTP或HTTPS
- 24. C# - 創建的HttpWebRequest沒有HTTP或HTTPS
- 25. 安全 - 通過HTTP或HTTPS css文件
- 26. java https://請求:HTTPclient或(命令行+ curl)?
- 27. uiwebview無法使用HTTP或HTTPS網址
- 28. 配置Tomcat以支持SSL或https
- 29. 保持HTTP或HTTPS上的.htaccess
- 30. 我是否需要ping HTTPS或HTTP?
如果一個額外的服務器變量將對了解更多關於PHP配置(例如在哪個服務器上運行)有用。 – Bruno 2010-10-28 12:44:57
下面只回答檢查$ _SERVER [「HTTPS」]的答案不完整。請參閱http://stackoverflow.com/questions/1175096/how-to-find-out-if-youre-using-https-without-serverhttps獲取完整答案。 – AnthonyVO 2017-01-28 14:28:23