Wie kann ich von .htaccess Echo ausgeben?

13

Wir schreiben viel Code für htaccess, aber was ist die beste Methode zum Debuggen, außer die Seite zu aktualisieren?

Kann ich das auf irgendeine Weise in eine Datei schreiben? oder gibt es eine echo / print funktion

Woher weiß ich einfach, was mein $ 1 $ 2 $ 3 ist?

Devrim
quelle

Antworten:

8

Sie können die im Blog-Post mit dem Titel A Couple Ways to Debug mod_rewrite erwähnte Methode ausprobieren :


Grundsätzlich wird ein Teil der Informationen, die mod_rewrite verwendet, in die Header kopiert. Verwenden Sie dann die Erweiterungen Firebug oder LiveHTTP-Header in Firefox, um die Header zu überwachen und Ihre Debug-Informationen zu lesen.

In .htaccess verwenden Sie die Bedingung und Regel:

RewriteCond %{QUERY_STRING} !vardump
RewriteRule (.*) http://www.example.com/$1?vardump&thereq=%{THE_REQUEST}&reqhost=%{HTTP_HOST} [R=301,L,QSA]
nEJC
quelle
Ich würde vorschlagen, 302 umzuleiten, um Probleme mit zwischengespeicherten 301-Ergebnissen in einem Browser nach Abschluss eines Tests zu vermeiden.
IPSUS
9

Probiere diese:

RewriteLog "/myfolder/mylogfile.log" 
RewriteLogLevel 3

Dies sind nur reguläre Ausdrücke mit einigen Ergänzungen, sodass Sie Regex Coach zum ersten Testen anhand von URLs oder anderen Regex-Debugging-Tools verwenden können.

Prost! :)

kolypto
quelle
Sehr nützliches Tool, aber denken Sie daran, es nach dem Debuggen zu entfernen, da Sie eine riesige Protokolldatei erhalten können!
Coops
6
Anscheinend funktioniert das in .htaccessDateien nicht. Es muss gehen, httpd.confwas bedeutet, dass es in der Regel nicht auf Shared Hosting-Konten erreichbar ist. :-(
Simon East
2

Hier ist ein interessanter kleiner Hack, mit dem Sie Variablen aus einer .htaccess-Datei "ausgeben" können.

Wenn Sie AllowOverride auf FileInfo gesetzt haben, können Sie eine benutzerdefinierte Fehlerantwort in Ihrer .htaccess-Datei mit den gewünschten Variablen in der Ausgabe festlegen und auslösen :

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

Je nachdem, wie kreativ Sie mit Ausdrücken umgehen, können Sie eine Menge nützlicher Informationen ausgeben!

Sie sind nicht darauf beschränkt, den 404-Status für Ihren "Echo" -Inhalt zu verwenden. Sie können sogar den Status 200 "ErrorDocument" überschreiben - was in Verbindung mit <If>Direktiven für einige andere interessante Verwendungszwecke dieses Hacks hilfreich sein könnte, um Inhalte direkt aus einer .htaccess-Datei zurückzugeben.

PeterA
quelle