Comment faire écho à partir de .htaccess?

13

Nous écrivons beaucoup de code dans htaccess mais quelle est la meilleure méthode de débogage autre que l'actualisation de la page?

Existe-t-il un moyen de l'écrire dans un fichier? ou existe-t-il une fonction d'écho / d'impression?

Comment puis-je savoir quel est mon 1 $ 2 $ 3 $?

Devrim
la source

Réponses:

8

Vous pouvez essayer la méthode mentionnée dans le billet de blog intitulé Quelques façons de déboguer mod_rewrite :


Fondamentalement, ce que vous faites est de vider certaines des informations que mod_rewrite utilise dans les en-têtes, puis d'utiliser les extensions Firebug ou LiveHTTP Headers dans Firefox pour regarder les en-têtes et lire vos informations de débogage.

Dans .htaccess, utilisez la condition et la règle:

RewriteCond %{QUERY_STRING} !vardump
RewriteRule (.*) http://www.example.com/$1?vardump&thereq=%{THE_REQUEST}&reqhost=%{HTTP_HOST} [R=301,L,QSA]
nEJC
la source
Je suggérerais de faire une redirection 302 pour éviter les problèmes avec le résultat 301 mis en cache dans un navigateur après avoir terminé un test.
IPSUS
9

Essayez-les:

RewriteLog "/myfolder/mylogfile.log" 
RewriteLogLevel 3

Ce ne sont que des expressions régulières avec quelques ajouts, vous pouvez donc utiliser Regex Coach pour les tests initiaux par rapport aux URL ou tout autre outil de débogage Regex.

À votre santé! :)

kolypto
la source
Outil très utile, mais n'oubliez pas de le supprimer après le débogage car vous pouvez obtenir un fichier journal massif!
Coops
6
Apparemment, cela ne fonctionne pas dans les .htaccessfichiers. Cela doit aller, httpd.confce qui signifie qu'il n'est généralement pas réalisable sur les comptes d'hébergement partagé. :-(
Simon East
2

Voici un petit hack intéressant pour "faire écho" des variables d'un fichier .htaccess.

Si AllowOverride est défini sur FileInfo, vous pouvez définir et déclencher une réponse d'erreur personnalisée dans votre fichier .htaccess avec les variables souhaitées dans la sortie:

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

Selon la façon dont vous êtes créatif avec les expressions, vous pouvez produire beaucoup d'informations utiles!

Vous n'êtes pas limité à utiliser le statut 404 sur votre contenu "en écho". Vous pouvez même remplacer le statut 200 "ErrorDocument" - qui, couplé à des <If>directives, pourrait permettre d'autres utilisations assez intéressantes de ce hack pour renvoyer le contenu directement à partir d'un fichier .htaccess.

PeterA
la source