2010-09-13 30 views
0

我有一個奇怪的問題,我不能爲我的生活弄清楚。首先,我從頭開發了一個PHP MVC框架。我遇到的問題是在退出()調用後,我正在執行頭部重定向。PHP MVC +路由器和重定向問題

這裏是路由選擇過程的高層視圖:

  1. REQUEST_URI被剝離開,並且所請求的控制器,方法和任何參數都設置爲變量要在腳本以後使用。
  2. router.php檢查以確定請求的控制器是否實際存在,如果不是,則返回false,但如果一切都檢出,則返回true
  3. 如果它返回true,它將執行請求的控制器,方法和任何參數。
  4. 如果返回false,則路由器將發送重定向到自定義404頁面。這使用PHP的header()函數,並且在標題(「Location:*」)後面有一個exit()。

第4步是問題發生的地方。被請求的控制器存在,因此它被執行並且所請求的視圖存在,因此它正確地加載所有內容,但是它會執行重定向,即使成功加載視圖後調用了exit()。

是否有任何理由爲什麼路由器會繼續並激發重定向?

+1

首先請張貼一些代碼,我們不是那麼強大的猜測一切。 – 2010-09-13 13:15:44

+0

@TomaszKowalczyk確實。但是,你是否可以變得強大,並獲得300點幫助解決我的問題? http://stackoverflow.com/questions/42172228/is-this-how-an-mvc-router-class-typically-works – 2017-02-15 03:46:57

+0

@Lark這個框架怎麼樣?有什麼可以幫助我嗎? http://stackoverflow.com/questions/42172228/is-this-how-an-mvc-router-class-typically-works – 2017-02-15 03:47:53

回答

1

我不會猜測(按照@Tomasz :),但即使你瀏覽器會遵守它獲取的任何http頭部,包括位置。

事實上,在類似的東西我做的,對任何錯誤我發送一個重定向頭,然後做一個exit以確保執行不會繼續在控制器重定向後。

+0

我很想聽到任何和關於創建路由類的問題的所有想法。 http://stackoverflow.com/questions/42172228/is-this-how-an-mvc-router-class-typically-works – 2017-02-15 03:48:53