2010-05-19 8 views
2

J'ai mon site CI fonctionne bien, sauf l'URL sont un peu est laid. Quelle approche dois-je prendre pour me permettre d'acheminer ce DIFFUSE à:routage URI dans CodeIgniter

http://domain.com/content/index/6/Planning

à l'url:

http://domain.com/Planning

Je suis confus au sujet de savoir si cela doit être se faire en les routes fichier ou dans mon .htaccess

Merci

+0

Vous avez un contrôleur de contenu? Y a-t-il une raison pour laquelle vous ne pouvez pas avoir de contrôleur de planification? – Galen

+1

bien que cela signifierait je devrais avoir un contrôleur séparé pour chaque page de contenu, pas l'idéal malheureusement –

+0

Si vous lisez le mode d'emploi alors peut-être il est temps que vous avez publié un code? –

Répondre

4

Il y a deux façons de configurer config/routes.php, la pertinence dépend de vos besoins.

  1. route pour chaque page, si vous avez juste quelques pages que vous voulez route:

    $route['Planning'] = 'content/index/6'; 
    $route['Working'] = 'content/index/7'; 
    // etc. 
    
  2. Vous pouvez utiliser url fallback, qui correspondent après toutes les autres règles de route - que signifie que vous devez définir des règles pouvant correspondre à cette règle avant la règle de secours. Il signifie que vous aussi ID lâche, et ont la base de données requête basée sur le titre:

    $route['register'] = 'register'; // this would match the fallback rule 
    $route['([a-z-A-Z1-9_]+)'] = 'content/index/$1'; // letters, numbers and underscore 
    // you'll receive "Planning" as parameter to Content::index method 
    
  3. Ou vous pouvez avoir une politique que tous les urls au contenu doivent commencer par lettre majuscule, dans ce cas, vous ne devez pas soucier d'autres règles de route

    $route['([A-Z]{1}[a-z-A-Z1-9_]+)'] = 'content/index/$1'; 
    // again, you'll receive "Planning" as parameter to Content::index method 
    
  4. vous voulez toujours l'identifiant numérique, de sorte que vous ne devez pas changer le contrôleur/modèle:

    $route['(\d+)/[a-z-A-Z1-9_]+'] = 'content/index/$1'; 
    // routes now look uglier: http://domain.com/6/Planning 
    
0

http://codeigniter.com/user_guide/general/routing.html

vous devriez être en mesure d'accomplir cela avec quelques-uns des exemples sur cette page

+0

Peut-être que je devrais mentionné que j'avais déjà lu cela. –

+0

ok désolé, alors pouvez-vous me montrer votre tentative d'écrire un itinéraire pour cela alors? –