2011-11-08 151 views
1

我創建了一個新的路線爲我的網站:CodeIgniter的URL路由 - SEO友好的URL

$路線[ 'default_controller'] = 「歡迎」;

$ route ['(:any)'] =「welcome/index/$ 1」;

$ route ['404_override'] ='';

當URL是這樣能正常工作在我的網站:

http://mydomain.com/first-article

http://mydomain.com/second-article

*我的控制器是剛剛的welcome.php

我也有一個管理員和管理員的URL的控制器是:

http://mydomain.com/admin

我會添加到路由文件忽視了管理內部/ admin和其他控制器?

回答

2

您可以替換welcome/index/$1路線:

$route['^(?!admin).*'] = "welcome/index/$1"; 

這基本上是說,如果一個URI,做以「管理員」 開始應該航線的歡迎/指數法和傳遞的內容索引方法。否則,請以admin爲控制器處理正常路由。

+0

感謝您的答覆和它的作品..但如果我想補充一個規則讓我們還有什麼好說的:如果一個URI不不是以「管理員」和「用戶」開頭,它應該路由到歡迎/索引方法..我會這樣做嗎? – scoohh

+0

只需將它添加到以管道字符分隔的路由中:'$ route ['^(?! admin | users)。*'] =「welcome/index/$ 1」;' - 您可以根據需要添加任意數量。 – swatkins

+0

工作!非常感謝.. – scoohh

0

打開的application/config/router.php,改變

$route['404_override'] = ''; 

$route['404_override'] = 'router/index'; 

您可以使用所有控制器的正常方式。

當您嘗試使用不存在的控制器時,應將其路由到404控制器。

創建一個名爲的控制器Router.php作爲針對CodeIgniter構造的控制器。

指數方法內Router.php,查詢相關海基會網址,做必要的行動。路由到未定義的控制器的所有請求將由路由器/索引方法處理。其他人將像往常一樣重定向到相關控制器。

你可能想使用頭碼點說,相關的頁面是不是404