Php 代码点火器线路有时不工作

Php 代码点火器线路有时不工作,php,codeigniter,routes,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'; 奇怪的是,有时当我去它的工作,其他时候它重定向到我的错误页面 有人知道我的路线出

我有个小问题。我正在使用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'; 
奇怪的是,有时当我去它的工作,其他时候它重定向到我的错误页面

有人知道我的路线出了什么问题吗

已经提前谢谢了


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

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

$route['photo/(:num)'] = 'photo/index/$1';
$route['people/(:num)'] = 'people/index/$1'; 
这是不对的

$route['photo/(:num)'] = 'photo/index/$1';
$route['people/(:num)'] = 'people/index/$1'; 
你必须写这条路线

$route['photo/(:num)'] = 'photo/$1';
$route['people/(:num)'] = 'people/$1'; 
这样,只允许使用数字


不需要索引。

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

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

并删除config.php文件
$config['index_page']=''中的index.php

是否尝试将
(:num)
括在括号中?如果您在路由中使用
$1
,则可能需要此选项。以前有此选项,但由于(:num)删除括号时出现错误。您有.htaccess文件正在从URL中删除
index.php
,对吗?如果是这样,则不需要自定义路线。photo/1会自动转到photo/index/1。以前有此功能,但因为在(:num)时也出现了错误,所以我删除了括号。