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

    J'ai une petite question. J'utilise Codeigniter 2.1.0 et j'ai le code suivant dans mon routes.php.Codeigniter routes ne fonctionne pas parfois

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

    La chose étrange est, parfois, quand je vais à http://www.myurl.com/photo/1 cela fonctionne et othertimes il me redirige vers ma page d'erreur.

    Quelqu'un a une idée de ce qui ne va pas avec mes routes?

    Déjà merci d'avance!

    Bob

    +0

    Avez-vous essayé enfermant '(num)' entre parenthèses? Cela peut être nécessaire si vous utilisez $ 1 dans votre itinéraire. – minboost

    +0

    Utilisé pour avoir ceci mais parce que j'avais aussi l'erreur quand j'avais (: num) j'ai enlevé la parenthèse. – Bob

    +0

    Vous avez le fichier .htaccess qui fonctionne pour supprimer le 'index.php' de vos URL, non? Si c'est le cas, vous n'avez pas besoin d'itinéraire personnalisé. photo/1 passe automatiquement à photo/index/1. – minboost

    Répondre

    1

    Ce n'est pas correct

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

    vous devez écrire cette route

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

    de cette manière seul le nombre sont autorisés.

    l'index n'est pas nécessaire.

    0

    Je ne sais pas si cela est le cas, mais vous pourriez vouloir mettre entre parenthèses autour des caractères génériques:

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

    Utilisé pour avoir ceci mais parce que j'avais aussi l'erreur quand j'avais (: num) j'ai enlevé la parenthèse. – Bob

    0

    lorsque vous utilisez la route dans CodeIgniter, ne pas oublier le fichier .httacess

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

    et de supprimer index.php dans le fichier config.php $config['index_page'] = '';

    Questions connexes