Codeigniter路线有时不起作用

时间:2011-12-09 19:22:42

标签: php codeigniter routes

我有一个小问题。我正在使用Codeigniter 2.1.0,我在routes.php中有以下代码。

$route['default_controller'] = "photo";
$route['404_override'] = 'error';

$route['photo/:num'] = 'photo/index/$1';
$route['people/:num'] = 'people/index/$1'; 

奇怪的是,有时候当我去http://www.myurl.com/photo/1它有效时,它会将我重定向到我的错误页面。

任何maby都知道我的路线有什么问题吗?

已提前感谢!

鲍勃

3 个答案:

答案 0 :(得分:1)

这不正确

$route['photo/(:num)'] = 'photo/index/$1';
$route['people/(:num)'] = 'people/index/$1'; 

你必须写这条路线

$route['photo/(:num)'] = 'photo/$1';
$route['people/(:num)'] = 'people/$1'; 

以这种方式只允许号码。

索引不是必需的。

答案 1 :(得分:0)

不确定是否是这种情况,但您可能希望在通配符周围加上括号:

$route['default_controller'] = "photo";
$route['404_override'] = 'error';

$route['photo/(:num)'] = 'photo/index/$1';
$route['people/(:num)'] = 'people/index/$1'; 

答案 2 :(得分:0)

在Codeigniter中使用路由时,请不要忘记.htaccess文件

RewriteEngine on
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA] 

并删除co​​nfig.php文件$config['index_page'] = '';

中的index.php