Codeigniter - 使用斜杠链接会导致重复的URI

时间:2013-09-05 01:26:03

标签: codeigniter url-routing href codeigniter-url

我有一个名为'list'的控制器。它只是在从数据库中检索用户后列出用户。这种观点有分页,但这是我自己的分页。我想做的是:

www.example.com/list/<page_num> --> show records belongs to page number given
www.example.com/list --> show first page, i.e. it is equal to '...com/list/1'

为此,我有一条这样的路线:

$route['list/(:num)'] = "list/index/$1";

当我想在页面锚点处指定href的链接时出现问题。例如,当我为第二页设置链接时,如href =“list / 2”,那个'list'字加起来就是uri,经过一些点击,我得到了类似的东西:

www.example.com/list/list/list/3

如果我使用href =“2”,则链接变为

www.example.com/2

无效。我可以在控制器名称的末尾使用“/”,我的意思是代替使用'... com / list',我可以使用'... com / list /',但是这不是我想的最好的解决方案一些用户想要“预备”它最后删除斜杠。我足够为每个链接使用base_url,img,css等!这个问题有解决方案吗?

1 个答案:

答案 0 :(得分:1)

我会为这个代码制作代码

function index() {

    redirect('list/1'); //whatever default or you can try _remap()

}

function list( $page = FALSE ) {

    if ($page === FALSE || !$this->_validPageFunction( $page )) $page = '1';

    //... whatever needs to be done here

}

private function _validPageFunction( $page ) {

    // return FALSE (not-valid) or TRUE (valid)

}

sidenote :尽量不要打扰那么多的路由,使用index()函数重定向到默认值,路由可以/搞乱

sidenote2 :始终使用base_url('');作为链接。