php
  • codeigniter
  • routes
  • 2011-12-09 71 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'] = '';

    相關問題