2011-10-12 19 views
16

Me preguntaba cómo crear y depurar este tipo de script que puede ser un poco de dolor de cabeza si no está acostumbrado a escribir ellos (como yo).Cómo depurar guión .htaccess reescritura

¿Utiliza herramientas para crearlos?

Algún consejo para depurar lo que está pasando en lugar de simplemente crear una estructura local y ver lo que está pasando en el navegador?

+0

posible duplicado de [Consejos para la depuración de las reglas de reescritura .htaccess] (http://stackoverflow.com/questions/9153262/ tips-for-debugging-htaccess-rewrite-rules) – Flimm

Respuesta

1

Puede configurar la directiva RewriteLog en la configuración del host virtual Se escribirá la información necesaria en el archivo especificado por usted.

RewriteLog "/usr/local/var/apache/logs/rewrite.log" 

Además, el uso directiva RewriteLogLevel para controlar la cantidad de tala

RewriteLogLevel 3 

read through

5
  1. Se puede utilizar cualquier herramienta de prueba de expresión regular para ayudarle a probar sus patrones contra URL (I estoy usando "The Regex Coach" - aplicación de Windows). Esto solo te ayudará con el patrón: ya deberías conocer la lógica/flujo general de cómo funciona la reescritura.

  2. Para DEBUG debe ser capaz de editar el archivo de configuración de Apache - utilizar RewriteLogLevel 9 y RewriteLog /path/to/rewrite.log para ver los detalles exactos de lo que está sucediendo durante la reescritura de URL (porque es una configuración de servidor que tendrá que reiniciar Apache para tener nueva configuración del servidor aplicada).

    Debes nivel si quieres depuración regla problemática. Nivel 3 o cualquier otro valor bastante bajo solo le mostrará información general sobre lo que está sucediendo sin entrar en detalles.

    No utilice el nivel 9 en el servidor ocupado/producción, ya que puede generar enorme tronco dentro de pocos segundos.

  3. Si lo que necesita hacer 301 (permanente) vuelve a dirigir - 302 do lugar durante un período de prueba (hasta que esté satisfecho con el estado y los resultados - a continuación, cambiar a 301) como los navegadores modernos hacen caché redirecciones 301 .. por lo que puede terminar en una situación frustrante cuando haya cambiado completamente la regla (o incluso la haya eliminado), pero el navegador aún redirecciona. La única cura en ese caso: borrar la caché del navegador y reiniciar.

16

Nota a los lectores: la vieja respuesta ya no funciona.

A partir de la versión 2.4, Apache ya no permite las directivas RewriteLogLevel y RewriteLog. Ahora todos están incluidos con la única LogLevel Directiva (véase Log Files documentación), que apoya a los niveles de registro específicos del módulo con prefijos y trace[1-8] constantes. Para establecer el nivel más alto de registro específicamente para el módulo de reescritura, ahora se utiliza la siguiente:

LogLevel warn rewrite:trace8 
+0

donde puedo escribir LogLevel warn rewrite: trace8 htaccess –

+6

¿y dónde ver los registros? – Umair

Cuestiones relacionadas