Como configurar o .htaccess para Kohana corretamente, de modo que não há “index.php /” feio na URL?
Pergunta
Depois de 2 horas, agora eu não poderia obtê-lo direito.
A instalação Kohana é acessível diretamente sob meu domínio, ou seja, " http://something.org/ "
Em vez de http://something.org/index.php/welcomde/index Eu quero ter URLs como http://something.org/welcome/index
O meu .htaccess é confuso completamente. É realmente o example.htaccess padrão que veio com o download. É quase inútil. Na página kohana é um tutorial "como remover o index.php". É realmente inútil, bem como, uma vez que não vai mesmo falar sobre como removê-lo. Totalmente confuso.
Por favor, alguém pode fornecer seu .htaccess a trabalhar para uma instalação kohana padrão?
Solução
As minhas htaccess se parece com o exemplo.
RewriteEngine On
RewriteBase /
RewriteRule ^(application|modules|system) - [F,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]
Mas você também tem que mudar a config.php arquivo para:
$config['index_page'] = '';
Outras dicas
Este é o nosso arquivo .htaccess agora, e parece estar funcionando.
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]
Note que temos a nossa aplicação, sistema e módulos de diretórios todos fora da raiz web.
Em alguns hospedeiros, acho specficially quando rodando o PHP em modo CGI, você tem que mudar
RewriteRule ^(.*)$ index.php/$1 [L]
para
RewriteRule ^(.*)$ index.php?/$1 [L]
na sua htaccess. Então, basicamente, você pode usar o kohana recomendado configuração , simplesmente substituindo index.php/$1
com index.php?/$1
Tente esta regra mod_rewrite:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule !^index\.php index.php%{REQUEST_URI} [L]
Para aqueles que se 403 "erro proibido" na OSX com padrão .htaccess se esqueça de adicionar como a primeira linha no .htaccess
Opções + FollowSymLinks
Kohana 3.2 tem uma convenção diferente. Se você olhar no Kohana_URL você encontrará a seguinte assinatura de função:
public static function site($uri = '', $protocol = NULL, $index = TRUE)
onde $ index é padrão para TRUE. Ao passar um FALSE $ index você vai remover a referência index.php.