¿Cómo hacer eco desde .htaccess?

13

Escribimos mucho código para htaccess, pero ¿cuál es el mejor método para depurar que no sea actualizar la página?

¿Hay alguna manera de que pueda escribirlo en un archivo? o hay alguna función de eco / impresión?

Simplemente, ¿cómo sé cuáles son mis $ 1 $ 2 $ 3?

Devrim
fuente

Respuestas:

8

Puede probar el método mencionado en la publicación del blog titulada A Couple Ways to Debug mod_rewrite :


Básicamente, lo que debe hacer es volcar parte de la información que mod_rewrite está utilizando en los encabezados y luego usar las extensiones de encabezado Firebug o LiveHTTP en Firefox para ver los encabezados y leer su información de depuración.

En .htaccess use la condición y la regla:

RewriteCond %{QUERY_STRING} !vardump
RewriteRule (.*) http://www.example.com/$1?vardump&thereq=%{THE_REQUEST}&reqhost=%{HTTP_HOST} [R=301,L,QSA]
nEJC
fuente
Sugeriría hacer una redirección 302 para evitar problemas con el resultado 301 en caché en un navegador después de terminar una prueba.
IPSUS
9

Prueba estos:

RewriteLog "/myfolder/mylogfile.log" 
RewriteLogLevel 3

Estas son solo expresiones regulares con algunas adiciones, por lo que puede usar Regex Coach para las pruebas iniciales contra URL, o cualquier otra herramienta de depuración de Regex.

¡Salud! :)

Kolypto
fuente
Herramienta muy útil, pero recuerde eliminarla después de la depuración, ya que puede obtener un archivo de registro masivo.
Coops
66
Aparentemente esto no funciona en .htaccessarchivos. Tiene que ir, lo httpd.confque significa que generalmente no se puede lograr en cuentas de alojamiento compartido. :-(
Simon East
2

Aquí hay un pequeño truco interesante para "hacer eco" de las variables de un archivo .htaccess.

Si tiene AllowOverride configurado en FileInfo, puede configurar y activar una respuesta de error personalizada en su archivo .htaccess con las variables deseadas en la salida:

ErrorDocument 404 "Request: %{THE_REQUEST} Referrer: %{HTTP_REFERER} Host: %{HTTP_HOST}"
RewriteRule ^ - [L,R=404]

¡Dependiendo de lo creativo que seas con las expresiones , puedes generar mucha información útil!

No está limitado a usar el estado 404 en su contenido "repetido". Incluso puede anular el estado 200 "ErrorDocument", que junto con las <If>directivas podría hacer algunos otros usos bastante interesantes de este truco para devolver contenido directamente desde un archivo .htaccess.

PeterA
fuente