在笨

2011-06-27 28 views
2

重寫URL我怎麼可以重寫以下笨網址在笨

localhost/test_project/pages/show_page/11 

localhost/test_project/pages/11 

,並有可能進一步減少,如:

localhost/test_project/11 

感謝。

+1

請參閱http://codeigniter.com/user_guide/general/routing.html「設置自己的路由規則」 – hakre

回答

1

您應該編輯此文件:application/config/routes.php

我們假設你有一個pages控制器和一個show_page方法,它接收一個id作爲參數(就像你說的那樣)。

您的網址是像localhost/test_project/pages/show_page/11

我假設參數始終是一個數字,所以使用通配符描述here你可以添加以下到您的routes.php文件:

$route['pages/(:num)'] = "pages/show_page/$1"; 

所以,您的網址就會就像localhost/test_project/pages/3。這就像是說有人試圖訪問localhost/test_project/pages/3,他/她實際上是指localhost/test_project/pages/show_page/3

對於喜歡localhost/test_project/3 URL可以補充一點:

$route['(:num)'] = "pages/show_page/$1"; 
1

你有幾個options。這些按照優先級的降序排列。

  1. 首先是routes.php,這是處理事情通常首選方法(已經提供的資料,但here再次是)。
  2. 你也可以添加一個_resolve方法到控制器(這意味着CI需要到你的控制器開始),並且
  3. 最後你可以覆蓋CI_Router庫,實際返回路由的類至。

說真的,除非你知道你在做什麼,否則不要重寫CI_Router。