2011-12-24 78 views
1

我需要幫助。Codeigniter無法在遠程服務器中正確重定向

我想問爲什麼我的CI在遠程服務器上沒有正確重定向? 我的本地主機中的所有內容都沒有任何問題。

例如:

class Login extends CI_Controller { 
    function index() { 
     //bla bla bla 
     redirect('dashboard','refresh'); 
    } 
} 

後,我成功登錄,我得到的網址:中http://www.test.com/%20//www.test.com/dashboard 代替:http://www.test.com/dashboard

這是一個有點傻問題,我用Google搜索無處不在,但無人接聽有關,所以任何幫助,將不勝感激。

+0

您需要檢查實際發送的頭文件(使用'wget -S'或Firebug等)。它所做的可能是發送一個'headers(「Refresh:0; url ='//www.test.com/dashboard'」);'header,或者在方案'http:'前綴後面有一個空格。向我們展示'redirect()'實現。 – mario 2011-12-24 09:17:15

回答

2

好吧,好吧,查找它。這是笨(1.7.1)的redirect()實現:

   case 'refresh' : header("Refresh:0;url=".$uri); 

不漂亮,但應該不會導致您所描述的問題。不知何故,一個空間仍然滑入。我懷疑這是一個非打印的Unicode空間變體,並且您的瀏覽器稍後將其轉換爲正常空間。 - 這可能也是$uri=site_url($uri)提到的那個非常有幫助的功能,但是沒有看上去。可能是一個網站misconfig然後。

另一種方法是嘗試正常location重定向。

redirect('dashboard'); 
+0

woahhhhh,你真是太棒了!你剛剛救了我的小時! 非常感謝! – 2011-12-24 09:32:14