2012-09-18 130 views
1

我試圖設置基於第一個URI段的路由。codeigniter條件路由

我有一個規則:

$route['(:any)'] = pages/view_page/$1; 

我想讓我的路線有條件的,這樣如果URI段1名的控制器被稱爲不言而喻控制器正常。 如果不存在控制器,則轉到pages/view_page函數。

我試着用if語句包裝$ route規則來檢查URI段1並使用它來查看文件是否存在以匹配它,但這似乎不起作用。

有沒有人有任何建議如何做到這一點,而不必寫大量的路由配置。

回答

1

由於路由覆蓋是基於簡單的基於正則表達式的轉換,因此您不能直接嵌入「是否會工作」類型的邏輯。這使你基本上有兩種選擇:

  1. 列表,你想成爲「一網打盡」 (:any)規則
  2. 使用$route['404_override']保留路由,而不是指示應該加載哪些控制器在沒有控制器之前,明確工作路線否則發現。但是,請檢查登錄的網址,並撥打show_404()並輸出適當的404 http狀態代碼以查找丟失的靜態資產等。
+0

確實很棒。我只需手動輸入像畫廊這樣的東西的正確路線。如果你可以自動這樣做,這將是很酷的。 – jaget