2010-05-08 7 views
1

Je développe un site Web en utilisant Kohana 3 (la première fois que j'utilise un framework). Localement, tout fonctionne parfaitement. Pour l'instant, j'ai un contrôleur de template par défaut, un support multi-langue et mon 'index.php' est correctement supprimé. Alors avant d'aller plus loin, j'ai testé si ça fonctionnait sur mon serveur et j'ai eu une boucle sans fin.Ko3 - Problème de réécriture d'URL - Suppression d'index.php

J'ai suivi le tutoriel du wiki non officiel pour la mise en œuvre en plusieurs langues: http://www.kerkness.ca/wiki/doku.php?id=example_of_a_multi-language_website

Une redirection vers la langue par défaut se produit si la langue n'est pas spécifiée dans le uri donc je pensais que le problème pourrait venir de là-bas même si cela a fonctionné localement, donc je l'ai enlevé pour voir ce qui se passe sans la redirection. Maintenant, je peux voir ma page d'accueil, mais quel que soit l'uri dans le navigateur web, la page d'accueil sera toujours appelée. J'ai inséré la ligne suivante dans ma vue d'accueil pour vérifier ce que l'uri était: request :: instance() -> uri() et effectivement, l'uri est toujours:/fr/home/

Je mets l'index. php retour (dans le bootstrap) et tout a bien fonctionné, même avec la redirection vers la langue par défaut.

Ma première hypothèse était que le uri est pas réécrite correctement, donc j'ai essayé de changer le .htaccess, mais sans succès ...

Voici mon .htaccess:

# Turn on URL rewriting 
RewriteEngine On 
# Installation directory 
RewriteBase /dev/ 
# Protect hidden files from being viewed 
<Files .*> 
Order Deny,Allow 
Deny From All 
</Files> 
# Protect application and system files from being viewed 
RewriteRule ^(application|modules|system)/ - [F,L] 
# Allow any files or directories that exist to be displayed directly 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
# Rewrite all other URLs to index.php/URL 
RewriteRule .* index.php/$0 [PT] 

(BTW I aussi essayé l'autre RewriteRule dans le wiki non officiel, ne fonctionne pas non plus)

informations complémentaires: Host: WebHostingPad Apache: v2.2.11 PHP: 5.2.9

rewrite_module est activé

Merci, je serais vraiment reconnaissant de votre aide parce que j'ai essayé de résoudre ce problème depuis plusieurs jours et ça commence vraiment à me agacer;)

Répondre

1

Le problème est venu de $_SERVER['PATH_INFO'] qui est revenu sans valeur ...

Ce problème peut être résolu en ajoutant la ligne suivante à la php.ini:

cgi.fix_pathinfo=0 
3

La seule chose que vous devez changer afin de se débarrasser de index.php dans l'URL est de mettre le paramètre 'index_file' dans Kohana :: init (bootstrap.php) à FALSE (tout le reste peut provoquer une erreur).

Donc le Kohana :: init ressemble à ceci;

Kohana::init(array(
    'base_url'  => '/', 
    'index_file' => FALSE, 

));

Si cela a fonctionné avec le .htaccess d'origine, il n'y a pas besoin de le changer du tout.

Questions connexes