2010-11-11 40 views
0

Mon routage est configuré comme ceci:Comment puis-je demander à Kohana d'appeler un contrôleur spécifique?

Route::set('default', '(<controller>(/<action>(/<id>)))') 
->defaults(array(
    'controller' => 'static', 
    'action'  => 'index', 
)); 

pour que taper:

http://localhost/et/testkohana4/

appels action_index sur Controller_Static comme il se doit.

Cependant, quand je tape:

http://localhost/et/testkohana4/test

j'attends de dire "ne peut pas trouver Controller_Test" mais, Kohana manque et je reçois un message d'Apache dit "L'URL demandée /testkohana4/index.php/test n'a pas été trouvée sur ce serveur."

Même si je p ut dans un fichier sous le répertoire appelé test.php avec la classe Controller_Test, je reçois toujours l'erreur page-not-found. Comment puis-je demander à Kohana d'appeler un contrôleur spécifique lorsque je tape son nom dans l'URL?

Répondre

2

Modifier: La bonne solution comme le prévoit cela répond à des commentaires était de changer la valeur RewriteBase .htaccess à

RewriteBase /et/testkohana4/ 

(<controller>(<action>(/<id>))) 

Il y a une erreur dans votre itinéraire. Il n'y a aucune barre oblique au début de (<action> ... Cela devrait être (/<action> ...

Ces <blocks> sont des segments dynamiques dans l'URL. Ainsi, dans cet exemple:

http://localhost/et/testkohana4/test 

donnerait lieu à cet être appelé:

  • Controller: et
  • action: testkohana4
  • ID: Test

Cela devrait fonctionner pour vous. J'espère que cela a aidé.

+0

même lorsque je mets la barre oblique, je reçois toujours le message "Not found: L'URL demandée /testkohana4/index.php/news n'a pas été trouvée sur ce serveur." J'ai changé mon fichier '.htaccess' en' example.htaccess' mais cela n'a eu aucun effet non plus. J'avais déjà travaillé avant, qu'est-ce qui pourrait amener Kohana à ne pas voir le texte après mon URL de base comme nom de contrôleur? –

+0

Cela ressemble à un problème de réécriture d'Apache.Est-ce que j'écris en pensant à vos fichiers Kohana dans le sous-répertoire/et/testkohana4? Si c'est le cas, alors vous devrez modifier la variable RewriteBase en "/ et/testkohana4 /" –

+0

merci, c'est ça, j'ai changé la ligne dans '.htaccess' en' RewriteBase/et/testkohana4/'et ça marche. –