Come impostare .htaccess per Kohana correttamente, in modo che non v'è alcuna “index.php /” brutto nell'URL?
Domanda
Dopo 2 ore ora non ho potuto farlo bene.
L'installazione Kohana è accessibile direttamente sotto il mio dominio, vale a dire " http://something.org/ "
Invece di http://something.org/index.php/welcomde/index voglio avere URL come http://something.org/welcome/index
Il mio .htaccess è incasinato completamente. In realtà è l'example.htaccess standard che è venuto con il download. E 'quasi inutile. Nella pagina Kohana è un tutorial "come rimuovere l'index.php". E 'davvero inutile pure, dal momento che non sarà nemmeno parlare di come rimuoverlo. Totalmente confusione.
Per favore, qualcuno può fornire la sua .htaccess di lavoro per un'installazione standard di kohana?
Soluzione
Il mio .htaccess sembra che l'esempio.
RewriteEngine On
RewriteBase /
RewriteRule ^(application|modules|system) - [F,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]
Ma bisogna anche cambiare il config.php file:
$config['index_page'] = '';
Altri suggerimenti
Ciò è il nostro file .htaccess in questo momento, e sembra funzionare.
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]
Si noti che abbiamo la nostra applicazione, di sistema e moduli di tutte le directory al di fuori della web root.
Su alcuni host, penso specficially durante l'esecuzione di PHP in modalità CGI, è necessario modificare
RewriteRule ^(.*)$ index.php/$1 [L]
a
RewriteRule ^(.*)$ index.php?/$1 [L]
nel vostro .htaccess. Quindi, in pratica è possibile utilizzare il kohana consigliata configurazione , semplicemente sostituendo index.php/$1
con index.php?/$1
Prova questa regola mod_rewrite:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule !^index\.php index.php%{REQUEST_URI} [L]
Per coloro che ottengono "errore proibito" 403 su OSX con predefinito .htaccess assicurarsi di aggiungere come la prima linea di .htaccess
Opzioni + FollowSymLinks
Kohana 3.2 ha una convenzione diversa. Se si guarda in Kohana_URL troverete la seguente firma funzioni:
public static function site($uri = '', $protocol = NULL, $index = TRUE)
dove l'indice $ è di default su TRUE. Con il superamento di un indice di FALSE $ si rimuove il riferimento index.php.