codeigniter中的URI路由

时间:2010-05-19 18:06:38

标签: php codeigniter routing uri

我的CI网站运行良好,但网址有点难看。 我应该采取什么方法来使我能够路由显示的内容:

http://domain.com/content/index/6/Planning

到网址:

http://domain.com/Planning

我很困惑这是应该在路线文件中还是在我的.htaccess中完成

由于

2 个答案:

答案 0 :(得分:4)

有几种方法可以设置config / routes.php,适用性取决于您的要求。

  1. 每个页面的路线,如果您只想要路由几页:

    $route['Planning'] = 'content/index/6';  
    $route['Working'] = 'content/index/7';  
    // etc.
    
  2. 您可以使用在所有其他路由规则之后匹配的回退网址 - 这意味着您必须在回退规则之前设置可能与此规则匹配的规则。它还意味着您丢失了ID,并且必须根据标题查询数据库:

    $route['register'] = 'register'; // this would match the fallback rule  
    $route['([a-z-A-Z1-9_]+)'] = 'content/index/$1'; // letters, numbers and underscore  
    // you'll receive "Planning" as parameter to Content::index method
    
  3. 或者您可以制定所有内容网址必须以大写字母开头的政策,在这种情况下您不必担心其他路线规则

    $route['([A-Z]{1}[a-z-A-Z1-9_]+)'] = 'content/index/$1';  
    // again, you'll receive "Planning" as parameter to Content::index method
    
  4. 您仍然需要数字ID,因此您无需更改控制器/型号:

    $route['(\d+)/[a-z-A-Z1-9_]+'] = 'content/index/$1';  
    // routes now look uglier: http://domain.com/6/Planning
    

答案 1 :(得分:0)

http://codeigniter.com/user_guide/general/routing.html

你应该能够通过本页的一些例子来实现这一目标