Problema en Kohana 2.3.4 (2.4) con enrutamiento y controlador 'Index'
Pregunta
Tengo: nueva copia limpia de Kohana 2.3.4 (también probé 2.4 RC1), un controlador llamado 'índice' en un Debian con Apache 2.2.9.
Cuando escribo una dirección como http: // localhost / kohana / index / index espero controlador 'index', acción 'index' a ejecutar. Funciona en Windows localhost, funciona en hosting compartido. Pero no en mi servidor Debian.
He depurado y encontrado que $ _SERVER ['PATH_INFO'] no es correcto. Omite el primer 'índice' en el URI, por lo que puedo acceder a 'índice / índice' yendo a 'índice / índice / índice'. Eso es lo que quiero arreglar.
¿Alguien sabe cómo podría resolverse esto?
Solución 2
Resultó ser mod_negotitaion. El maldito mod reescribe mi / index / index en /index.php/index, porque pensó que me había perdido .php
Entonces, cualquier persona que tenga este problema, simplemente deshabilite mod_negotiation y pase un buen rato
Otros consejos
Supongo que realmente ocurre en tu archivo .htaccess o en la configuración de Apache, no específicamente en Kohana. En primer lugar, asegúrese de cambiar el nombre del archivo example.htaccess que viene con Kohana a .htaccess, y es posible que deba reiniciar Apache.
Si está utilizando .htaccess para ocultar la parte index.php de la ruta, verifique cuál es la configuración de RewriteBase:
RewriteBase /kohana/
Si lo instaló en la raíz de su servidor web (como en producción, o usando un puerto separado para localhost), entonces debe cambiarse a:
RewriteBase /
Este es mi error personal más común al configurar nuevos sitios y entornos de desarrollo, por cierto. Esto también es válido para CodeIgniter y otros frameworks PHP relacionados.
¿Su instalación de Apache en el servidor Debian tiene realmente mod_rewrite? Sería bueno confirmar eso. Aquí hay una forma de haz eso .
Un diagnóstico adicional para ver si es culpa de Kohana o de Apache incluye agregar nuevamente en la porción index.php de la ruta. En su caso, intente http: //localhost/kohana/index.php/index . Finalmente, tengo que estar de acuerdo con sarfraz sobre que nombrar a su controlador " index " solo está pidiendo problemas. Mi propia convención es llamarlo "hogar" y para editar la ruta predeterminada en consecuencia.