Apache rewrite Regeln sind ein mächtiges Tool um URLs einer Webseite in der .htccess Datei zu ändern. Leider hat man keine Möglichkeit sie zu debuggen wenn man keinen direkten Zugriff auf die Apache Installation hat wie es die Regel ist bei managed Servern. Durch das Fehlen der Apache Logs kann man nur durch Ändern und Probieren der rewrite Regeln zum Ziel kommen. Dabei gibt es ein paar Dinge durch die, wenn man sie berücksichtigt, auch so recht gut seine rewrite Regeln entwickeln kann ohne eine laufende Webpräsenz zu beeinträchtigen.

 

Zuallererst muss man sich mit regulären Ausdrücken gut auskennen um korrekte Ausdrücke zu erstellen und iterativ durch Tests anpassen zu können. Links dazu finden sich am Ende der Seite. Wenn man dann folgende Dinge beachtet kann man sie sehr gut auch ohne Rootzugriff testen und entwickeln:

1) 302 für das Testen der Regeln benutzen

301 sind hartnäckig werden von Browsern gecached. Wenn man rumtestet bekommt man dadurch diverse Probleme. Auch sollte man nicht gleich nach erfolgreichem Testen von 301 auf 302 umstellen sondern eine gewisse Zeit abwarten bis sich zeigt dass die Regeln wirklich wie gewünscht funktionieren. Ansonsten werden regelmäßige Besucher plötzlich unerwartet einen 404 erhalten.

2) Einen speziellen Testbenutzeragenten für die Tests benutzen

Damit stellt man sicher dass man auf einer aktiven Webseite ohne irgendwelche Besucher zu beeinflussen seine Regeln gefahrlos testen kann.

RewriteCond %{HTTP_USER_AGENT}  ^mein-test-benutzer-agent$
RewriteCond %{HTTP_HOST} ^www\.meineWebseite\.de$ [NC]
RewriteRule ^ http://www.google.de [L,R=302]

Dadurch wirkt die Regel nur für den Besucher, der den Testbenutzeragenten benutzt.

3) Benutze wget um keinen Cache zu benutzen und setze den Testbenutzeragenten

wget -U "mein-test-benutzer-agent" http://www.meineWebseite.de

 

Hilfreiche Links

http://stackoverflow.com/questions/9153262/tips-for-debugging-htaccess-rewrite

Online Regex Tester

Ein weiterer Online Regex Tester

Noch ein Online Regex Tester

rewrite online Tester

Apache URL rewriting guide

Regular expression info

Regex Tutorial