Rilascio in Kohana 2.3.4 (2.4) con routing e controller "Index"
Domanda
Ho: nuova copia pulita di Kohana 2.3.4 (provato anche 2.4 RC1), un controller chiamato 'index' su un Debian con Apache 2.2.9.
Quando scrivo un indirizzo come http: // localhost / kohana / index / index mi aspetto un controller 'indice', azione 'indice' da eseguire. Funziona su Windows Localhost, funziona su hosting condiviso. Ma non sul mio server Debian.
Ho eseguito il debug e ho scoperto che $ _SERVER ['PATH_INFO'] non è corretto. Omette il primo "indice" nell'URI, quindi posso accedere a "indice / indice" andando su "indice / indice / indice". Quindi è quello che voglio correggere.
Qualcuno sa come risolvere questo problema?
Soluzione 2
Si è rivelato essere mod_negotitaion. Dannazione mod riscrive il mio / index / index in /index.php/index, perché pensava che mi mancasse .php
Quindi, chiunque incontri questo problema, disabilita mod_negotiation e si diverte
Altri suggerimenti
Suppongo che si verifichi effettivamente nel tuo file .htaccess o nella configurazione di Apache, non nello specifico di Kohana. Prima di tutto, assicurati che il file example.htaccess fornito con Kohana sia rinominato in .htaccess e potrebbe essere necessario riavviare Apache.
Se stai usando .htaccess per nascondere la parte index.php del percorso, controlla per vedere qual è l'impostazione RewriteBase:
RewriteBase /kohana/
Se lo hai installato nella root del tuo server web (come in produzione o usando una porta separata per localhost), allora dovrebbe essere cambiato in:
RewriteBase /
Questo è il mio errore personale più comune nella creazione di nuovi siti e ambienti di sviluppo, tra l'altro. Questo vale anche per CodeIgniter e altri framework PHP correlati.
Il tuo Apache installa sul server Debian ha effettivamente mod_rewrite? Sarebbe bene confermarlo. Ecco un modo per fallo .
Un'ulteriore diagnosi per vedere se è colpa di Kohana o Apache include l'aggiunta di nuovo nella parte index.php del percorso. Nel tuo caso, prova http: //localhost/kohana/index.php/index . Infine, sono d'accordo con sarfraz sopra che nominare il tuo controller "indice" sta solo chiedendo guai. La mia convenzione è chiamarla " home " e per modificare di conseguenza il percorso predefinito.