php
  • codeigniter
  • routes
  • 2011-12-09 50 views 0 likes 
    0

    我有一个小问题。我正在使用Codeigniter 2.1.0,并且在我的routes.php中有以下代码。Codeigniter路由有时不工作

    $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它的工作原理和othertimes它重定向我到我的错误页面。

    任何人maby有任何想法我的路线有什么问题吗?

    在此先感谢!

    鲍勃

    +0

    您是否尝试过封闭'(:NUM)'在括号内?如果您在路线中使用“$ 1”,则可能需要使用此功能。 – minboost

    +0

    曾经有这个,但因为我也有错误,当我有(:num)我删除了括号。 – Bob

    +0

    你有.htaccess文件工作从您的URL删除'index.php',对吧?如果是这样,你不需要自定义路由。照片/ 1会自动转到照片/索引/ 1。 – minboost

    回答

    1

    这是不正确

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

    你写此路线

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

    那样只允许号码。

    索引是没有必要的。

    0

    不知道如果是这样的话,但你可能想要把周围的通配符括号:

    $route['default_controller'] = "photo"; 
    $route['404_override'] = 'error'; 
    
    $route['photo/(:num)'] = 'photo/index/$1'; 
    $route['people/(:num)'] = 'people/index/$1'; 
    
    +0

    以前有过这个,但是因为我有错误(:num),我删除了括号。 – Bob

    0

    当你笨使用的路线,不要忘记.httacess文件

    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文件删除的index.php $config['index_page'] = '';

    相关问题