所以那種非常相似,「Detecting https requests in php」 HTTPS檢測HTTP VS服務器上:發回任何有用
希望有https://example.com/pog.php去http://example.com/pog.php甚至反之亦然。
問題:
- 無法讀取$ _SERVER什麼[「HTTPS」],因爲它不存在
- 服務器發送通過端口80這兩個請求,所以無法檢查443對HTTPS版本
apache_request_headers()
和apache_response_headers()
被髮回同樣的事情- 不能告訴負載平衡器任何東西,或把它發送額外出頭
- 服務器反饋數據吐出來通過這兩個URL調用的頁面是完全一樣的保存會話ID。遊民。
是否有任何頁面方式檢測是否通過SSL或非SSL調用?
編輯:$_SERVER["HTTPS"]
不存在,無論是否打開,無論您是通過SSL還是非SSL查看網站。由於某種原因,託管服務器選擇了加密的所有HTTPS請求,但是端口爲80.因此,$_SERVER["HTTPS"]
從不開啓,不在那裏,在該服務器端沒有任何有用的反饋。所以這個參數總是空的。
(和是的,這意味着它得到標記說FF或Chrome的部分無效的SSL證書。但這部分沒有關係。)
而且,可以從檢測URL中得到的最達到了斜線的地步。 PHP無法看到請求是否在前面有https
或http
。
永遠不要相信用戶。頁面必須保持在HTTP版本上,所以如果他們嘗試使用HTTPS,他們會被回擊到HTTP版本。雖然喜歡你的回答。 – random 2009-02-16 05:53:10