Depurando reescrituras de urls

Apache HTTPD
Si estas reescribiendo urls usando el módulo mod_rewrite y crees que todas tus reglas y expresiones regulares están bien pero no funcionan entonces debes echarle un vistazo las siguientes directivas:

RewriteLog: Fichero hacia donde se va escribir las operaciones que esta realizando el módulo mod_rewrite.

RewriteLogLevel: Controla la cantidad de información a escribir en el fichero especificado en RewriteLog. Un valor de 0 deshabilita el volcado de las acciones mod_rewrite mientras que un valor de 9, produce un gran volumen de información. Se recomienda establecer un valor mayor que 2 solo con el propósito de depuración y un valor de 0 para entornos de producción.

Estas 2 directivas tienen contexto configuración del servidor y host virtuales.

Ejemplo:

<VirtualHost *:80>
...
        RewriteLog "/var/log/httpd/rewrite_log"
        RewriteLogLevel 5   
...
</VirtualHost>

Luego:

# tail -f /var/log/httpd/rewrite_log

A partir de la version 2.4 las directivas RewriteLog y RewriteLogLevel dejaron de existir y su funcionalidad fueron mezclada con la directiva LogLevel la cuál ahora tiene la siguiente sitaxis:

LogLevel [modulo:]nivel [modulo:nivel] ...

Los niveles pueden ir de emerg a trace8 siendo trace8 el nivel que provee mayor información por lo que ahora tendríamos la siguiente configuración

LogLevel debug rewrite:trace3

Lo que significa que tendríamos un nivel debug para los módulos que forman parte del núcleo y un nivel trace3 para el módulo rewrite. Para ver la información volcada por el módulo rewrite puede usar los siguientes comandos

# tail -f /var/log/httpd/error_log |fgrep '[rewrite:'

Lecturas recomendadas

Modulo mod_rewrite

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.