Tengo dos problemas principales con mod_rewrite:
1) No se informa un error significativo cuando tengo una regla no válida
2) Para probar de manera confiable cada modificación, tengo que borrar el caché de Chrome. Esto no es ciencia espacial, pero tengo que presionar Ctrl + Shift + Delete y luego hacer clic en Aceptar, luego cerrar la ventana y volver a cargar.
Me gustaría ver si alguno de los gurús está dispuesto a compartir sus secretos para administrar eficientemente el código mod_rewrite.
apache
mod-rewrite
puk
fuente
fuente
Respuestas:
Un truco es activar el registro de reescritura. Para activarlo, intente estas líneas en su configuración principal de apache o en el archivo de host virtual actual ( no en
.htaccess
):Desde Apache httpd 2.4 mod_rewrite, las directivas RewriteLog y RewriteLogLevel se han reemplazado completamente por la nueva configuración de registro por módulo.
fuente
RewriteEngine On
sección allí porque si solo la habilita (como lo hice) en el.htaccess
archivo, entonces no se registrará nada.La directiva LogRewrite mencionada por Ben ya no está disponible en Apache 2.4. En su lugar, debe usar la directiva LogLevel. P.ej
Ver http://httpd.apache.org/docs/2.4/mod/mod_rewrite.html#logging
fuente
tail -f error_log|fgrep '[rewrite:'
AllowOverride
estaba configuradoAll
!Para la resolución básica de URL, use un buscador de línea de comandos como
wget
ocurl
para hacer la prueba, en lugar de un navegador manual. Entonces no tiene que borrar ningún caché; solo con la flecha hacia arriba e Intro en un shell para volver a ejecutar sus recuperaciones de prueba.fuente
Ahí está el probador de htaccess .
Muestra qué condiciones se probaron para una determinada URL, cuáles cumplieron los criterios y qué reglas se ejecutaron.
Sin embargo, parece tener algunos problemas técnicos.
fuente
Según la respuesta de Ben, puede hacer lo siguiente al ejecutar apache en Linux (Debian en mi caso).
Primero cree el archivo rewrite-log.load
/etc/apache2/mods-availabe/rewrite-log.load
Luego ingrese
seguido por
Y cuando termine de depurar sus reglas de reescritura
fuente
LogLevel warn rewrite:trace8
oLogLevel info rewrite:trace8
donde 8 puede ser cualquier número del 1 al 8