网址细分,但用于搜索

时间:2010-10-15 09:56:49

标签: php codeigniter

Codeigniter中的网址段似乎简单易懂...但是,我正在创建一个搜索功能,要求网址段是动态的。

如果我在主类中添加搜索功能,我必须将“欢迎”类添加到网址:http://example.com/index.php/welcome/search/stuff-i-want-to-search/

但是,我希望网址为: http://example.com/index.php/search/stuff-i-want-to-search/

在Url中没有“欢迎”,很可能没有index.php

我想我可以通过创建一个名为Search的新类文件来实现这一点。我可以加载文件,但是当我尝试搜索时,我最终会进入404。

请告知。

3 个答案:

答案 0 :(得分:1)

在CI中,URI Routing会为您执行此操作。

$route['search/:any'] = "welcome/search/$1";

答案 1 :(得分:1)

使用$route['search/:any'] = "welcome/search/$1";是一个冒险的过程,因为:任何人都可以接受任何事情......

我建议使用正则表达式,使用起来更安全。

$route['search/([a-z_A-Z]+)'] = 'welcome/search/$1';

答案 2 :(得分:0)

你可以通过路由

来做到这一点

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

我想:

$route['search/:any'] = "search/do_search/$1";

其中通过(我猜测)你的do_search()函数将该术语作为参数,在连字符处展开,并做你需要做的事。

记住CI网址是:

site.com./index.php/的控制器 / 功能 / ID