2015-01-04 26 views
0

我正在PhalconPHP中處理我的第一個應用程序,所以我在工作時深入瞭解文檔,但似乎沒有涉及。PhalconPHP - 重定向到主頁總是在URI中添加/索引

假設我的應用程序正在www.myapp.tld上運行。在某些情況下,我需要將用戶重定向回主頁,併爲我使用下面的代碼:

if ($haveToRedirect) { 
    $this->response->redirect(); 
    $this->view->disable(); 
    return; 
} 

相反,如果重定向到www.myapp.tld,用戶被重定向到www.myapp .TLD /指數。我已經嘗試了不同的重定向呼叫,但都給予同樣的結果:

$this->response->redirect(''); 
    $this->response->redirect('/'); 
    $this->response->redirect('/', TRUE); 

在應用程序中的引導我已經設置了基本URI是「/」:

$di->set('url', function() { 
    $url = new Phalcon\Mvc\Url(); 
    $url->setBaseUri('/'); 
    return $url; 
}); 

有沒有一種辦法避免添加「索引」,只需將其重定向到「www.myapp.tld」?

回答

1

重定向到「/ index」的原因實際上是在我幾個星期前做的Permission類中。它有:

$this->response->redirect('index');

爲每一個客人不能訪問控制器。由於我添加了新的控制器,我不斷被重定向到索引,並且注意到當我刪除了我放入控制器的條件重定向時,重定向來自其他地方。

無論如何,這就是它。獲得的教訓 - 下一次在尋求幫助之前grep for'索引'。 :)

1

如果未指定文件,那麼默認情況下將指向該目錄中的索引頁。您需要指定一個文件位置。也嘗試URI,而不是URL

+0

據我所知,我重定向到索引頁面,因爲我沒有指定任何東西。索引頁面在以下兩個URL上: 'www.myapp.tld/index' 'www.myapp.tld /' 我只想只使用後者。 – Vorta

+0

您可以控制是否顯示尾隨索引。您需要創建一個.htaccess文件。這裏有一些關於這個主題的有用文檔。[刪除索引](https://ellislab.com/expressionengine/user-guide/urls/remove_index.php.html)。 – ZenStein

+0

這實際上是從URL中刪除index.php文件。我使用的是Nginx,我的配置已經根據PhalconPHP規範將URI重寫爲index.php參數。 'location @rewrite { \t rewrite^/(。*)$ /index.php?_url=/$1; }' 我現在遇到的問題是索引控制器的名字在url中被調用,而不需要它。 – Vorta