在codeigniter中重写网址

时间:2011-06-27 18:37:25

标签: php url codeigniter mod-rewrite

如何重写以下codeigniter网址

localhost/test_project/pages/show_page/11

localhost/test_project/pages/11

是否可以进一步减少:

localhost/test_project/11

感谢。

2 个答案:

答案 0 :(得分:1)

你有几个options。这些按优先级降序排列。

  1. 首先是routes.php,这是处理事物的首选方式(已提供的信息,但here又是)。
  2. 您还可以将_resolve方法添加到控制器(这意味着CI需要首先到达您的控制器),并且
  3. 最后你可以覆盖CI_Router库,这个类实际上返回了要去的路径。
  4. 说真的,除非你知道自己在做什么,否则不要覆盖CI_Router。

答案 1 :(得分: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这样的网址,您可以添加以下内容:

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