2014-09-25 111 views
2

我有一個PHP腳本,應該在執行一些代碼後重定向到動態回退URL。我用它來用戶重定向到一個成功登錄後,即特定的URL的代碼是:PHP標頭位置重定向在iPhone上不起作用

header('Location: '. rawurldecode('/index.php?')); 

此代碼的工作以及在所有3個主要的瀏覽器,但是,首標位置根本不上工作的工作蘋果手機。我已經在Safari上進行了測試,並且在iOS上進行了測試:兩者都不起作用。

我也試過硬編碼的全長URL,但沒有成功。

header("Location: http://google.com/"); 

編輯

我曾嘗試輸入重定向聲明域。這似乎固定在移動瀏覽器的問題,但現在打破了在桌面瀏覽器...

header('Location: http:' . $_SERVER[HTTP_HOST]. rawurldecode($_GET['redirect'])); 
+0

只是要正確其標題(「位置:http://google.com/」);而不是標題(「位置:http://google.com/」);右邊 – justrohu 2014-09-25 04:48:01

+0

justrohu,這是正確的。事實證明我的配置PHP接受這兩個。 – Yann 2014-09-25 04:54:02

+0

嗨,感謝您的更新,我不知道這一點。 – justrohu 2014-09-25 04:56:51

回答

3

您可以嘗試重定向頁面的JavaScript方式:

例子:

echo '<script>window.location = "'.$url.'";</script>'; 
    die; 

它可能有幫助... !!

+0

謝謝,使用JavaScript的效果很好。唯一的缺點是隻有在加載正文後纔會發生重定向,因此前一頁仍然可見一秒左右。另外,死亡;您提到的語句對於阻止頁面上其他腳本的執行很重要。 – Yann 2014-09-25 07:23:03

+1

很高興知道它的工作,很樂意幫忙... :) – 2014-09-25 07:28:59

+0

也爲我工作。我仍然想知道爲什麼PHP重定向不起作用... – 2016-03-10 09:04:34

0

如果您重新加載當前頁面,請嘗試此操作。

echo '<script>location.reload();</script>';