Comment mettre en place .htaccess pour Kohana correctement, de sorte qu'il n'y a pas laid « index.php / » dans l'URL?
Question
Après 2 heures maintenant, je ne pouvais pas le droit.
L'installation Kohana est accessible directement sous mon nom de domaine, à savoir " http://something.org/"
Au lieu de http://something.org/index.php/welcomde/index Je veux avoir des URL comme http://something.org/welcome/index
Mon .htaccess est foiré complètement. Il est en fait le example.htaccess standard fourni avec le téléchargement. Il est presque inutile. Sur la page kohana est un tutoriel « comment supprimer le index.php ». Il est vraiment inutile aussi bien, car il parlera même pas sur la façon de l'enlever. confusion totalement.
S'il vous plaît, quelqu'un peut-il fournir à son .htaccess de travail pour une installation standard kohana?
La solution
Mon htaccess ressemble à l'exemple.
RewriteEngine On
RewriteBase /
RewriteRule ^(application|modules|system) - [F,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]
Mais il faut aussi changer le fichier config.php à:
$config['index_page'] = '';
Autres conseils
Ceci est notre fichier .htaccess en ce moment, et il semble fonctionner.
RewriteEngine On
# 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,L]
Notez que nous avons notre application, les répertoires système et tous les modules en dehors de la racine web.
Sur certains hôtes, je pense que specficially lors de l'exécution PHP en mode CGI, vous devez changer
RewriteRule ^(.*)$ index.php/$1 [L]
à
RewriteRule ^(.*)$ index.php?/$1 [L]
dans votre htaccess. Donc, fondamentalement, vous pouvez utiliser de configuration kohana recommandé, remplaçant simplement index.php/$1
avec index.php?/$1
Essayez cette règle mod_rewrite:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule !^index\.php index.php%{REQUEST_URI} [L]
Pour ceux qui sont « erreur interdite » 403 sur Mac OS X avec défaut .htaccess assurez-vous d'ajouter la première ligne dans .htaccess
Options + FollowSymLinks
Kohana 3.2 a une autre convention. Si vous regardez dans Kohana_URL vous trouverez la signature de la fonction suivante:
public static function site($uri = '', $protocol = NULL, $index = TRUE)
où l'indice $ est par défaut à TRUE. En passant un indice de $ FAUX vous allez supprimer la référence index.php.