我有一個簡單的代碼,用於將我的php文件重定向到https,如果它不存在,我不斷收到太多的重定向問題。導致太多重定向的Https?
if(strtolower($_SERVER['HTTPS']) != 'on') {
redirect('https://domain.com/register.php');
}
有什麼我可以做的,以解決這個問題?
謝謝。
我有一個簡單的代碼,用於將我的php文件重定向到https,如果它不存在,我不斷收到太多的重定向問題。導致太多重定向的Https?
if(strtolower($_SERVER['HTTPS']) != 'on') {
redirect('https://domain.com/register.php');
}
有什麼我可以做的,以解決這個問題?
謝謝。
從PHP manual,$_SERVER['HTTPS']
是Set to a non-empty value if the script was queried through the HTTPS protocol.
這不一定是on
。然後你可能會陷入無限循環的重定向。
爲了避免這種情況,可使用empty()功能:
if ((!isset($_SERVER['HTTPS'])) || (empty($_SERVER['HTTPS']))
{
redirect('https://domain.com/register.php');
}
注:注意,使用ISAPI與IIS時,該值將被關閉,如果請求不是通過HTTPS協議作出。
嗯,所以會 if(!empty($ _ SERVER [ 'HTTPS'])){ redirect('https://domain.com/register.php'); } 是anwser? – user1993382 2013-04-21 18:57:48
@ user1993382如果$ _SERVER ['HTTPS']'爲空或未設置,則腳本將從非HTTPS URL進行查詢。所以你可能想使用'if(empty($ _ SERVER ['HTTPS']))'... – Jean 2013-04-21 18:59:49
是的,我發現後,我注意到,做到了,謝謝! – user1993382 2013-04-21 19:02:02
if(!isset($_SERVER['HTTPS'])){
//redirect
}
您在重定向頁面上沒有重定向嗎? – brbcoding 2013-04-21 18:55:24
不,沒有其他重定向。 – user1993382 2013-04-21 18:56:41
適當的測試只是簡單的'!'($ _ SERVER ['HTTPS'])''。 php不保證一個特定的值,只是在使用SSL時它不是空的。 – 2013-04-21 18:56:57