Cómo depurar Apache mod_rewrite
Tengo dos problemas principales con mod_rewrite:
No se informa ningún error significativo cuando tengo una regla no válida
Para probar de manera confiable cada modificación, tengo que borrar el caché de Google Chrome. Esto no es ciencia espacial, pero tengo que presionar Ctrl++ , hacer clic , cerrar la ventana y recargar Shift.DeleteOK
Me gustaría ver si alguno de los gurús está dispuesto a compartir sus secretos para administrar eficientemente el código mod_rewrite.
Un truco consiste en activar el registro de reescritura. Para activarlo, pruebe esta línea en la configuración principal de su servidor Apache HTTP o en el archivo de host virtual actual ( no en .htaccess
):
LogLevel alert rewrite:trace6
Antes de Apache httpd 2.4 mod_rewrite , dicha configuración de registro por módulo aún no existía. En su lugar, podría utilizar la siguiente configuración de registro:
RewriteEngine On
RewriteLog "/var/log/apache2/rewrite.log"
RewriteLogLevel 3
La directiva RewriteLog mencionada por Ben ya no está disponible en Apache 2.4.
En su lugar, debe utilizar la directiva LogLevel. P.ej,
LogLevel alert rewrite:trace6
Consulte Módulo Apache mod_rewrite, Registro .
Para una resolución de URL básica, utilice un buscador de línea de comandos como wget
o curl
para realizar las pruebas, en lugar de un navegador manual. Entonces no es necesario borrar ningún caché; simplemente up arrowy presione Enteren un shell para volver a ejecutar las búsquedas de prueba.