不晓得你这路由啥情况,我都是尽量避免设置路由的。
阁下的情况,我可以给出一个折衷的办法:
路由里这样设置:
$route['news/(:any)'] = "news/news_lastest_by_year/$1"然后,在你的news控制器里,写这样一个方法
function news_lastest_by_year($year, $page){
$year = intval($year)//将传过来的第一个参数强制转换为整数,如2014转为2014
$page = intval($page)//将传过来的第二个参数强制转换为整数,如1.html转为1
//后续代码
}
当然,这个有个条件,那就是news/$1/$2 这后面的两个参数只能是数字,如果不是数字,都会被强制转化为数字 。
当然,若非要传非数字的参数,那么在控制器里,就不要用intval()来强制转换,可以用正则匹配,检测它是不是数字
阁下需要在使用框架,那么就要把项目里的第一个程序都放在框架架构之中,而不能在根目录下新建一个admin.php。阁下应该知晓,CI框架的入口文件是index.php,里面的任何页面都应该基于这个入口文件,即访问路径永远是index.php/*****这样的形式,而不能单独出来一个admin.php,这样的话,没有通过入口文件访问了,那么框架的效用也就没有了。
所以,阁下应该在application里的controllers目录下建一个admin.php,并按CI框架控制器的规则来使用它,这样,访问路径就是index.php/admin这样了
当然,阁下会以为所有的URL中都有一个index.php非常难看,那么阁下可以通过CI框架的路由规则将之隐藏掉,也可以使用服务器的伪静态功能来隐藏掉。但也仅是隐藏了而已,实际路径仍然有index.php这个入口文件。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)