Zur Navigation

Eine RewriteCond für alle Rules in htaccess

1 Rudy

Hallo,

mein Problem ist folgendes: Ich sitze an einer Seite, die mittels htaccess sprechende urls verpasst bekommt, hier ein Auszug:

RewriteEngine on
# ----- Deutsch -----
RewriteRule ^hotel/(lage|geschichte)\.html$ index.php?html=$1&language=de
RewriteRule ^geniessen/(wappenstube|speisesaal|jaegerstube|weinkeller)\.html index.php?html=$1&language=de
# ----- Italienisch ----
RewriteRule ^albergo/posizione\.html$ index.php?html=lage&language=it
RewriteRule ^albergo/storia\.html$ index.php?html=geschichte&language=it


Nun muss ich den Mailversand online testen, möchte das aber gleich im Root-Verzeichnis, nicht in einem Unterordner machen. Die alte Seite hat eine index.html mit dem alten Design, die will ich solange angezeigt haben, bis ich fertig bin - für alle IPs, außer meiner momentanen.

Ich weiß, dass das mit RewriteCond {REMOTE_ADDR} geht, aber wie kann ich die gesamte htaccess für andere IP-Adressen nichtig machen? Muss ich vor jede RewriteRule die RewriteCond einfügen, oder gibt es da einen einfachen effizienteren Weg?

27.05.2007 13:48 | geändert: 27.05.2007 13:48

2 Jörg Kruse

Hm, ich hab das bei mir lokal grad mal so ausprobiert, scheint zu funktionieren?

RewriteCond %{REMOTE_ADDR} 127\.0\.0\.1
RewriteEngine On

RewriteRule ^(.*)$ http://test.joergkrusesweb.de/ [R=301]

27.05.2007 14:00 | geändert: 27.05.2007 14:00

3 Rudy

Ah, vor der RewriteEngine On kann ich eine RewriteCond definieren? Super, Danke!

27.05.2007 14:03

4 Jörg Kruse

Ich hatte das auch nur ausprobiert - aber es funktioniert scheinbar doch nicht - die RewriteCond gilt wohl nur für die erste Rule, die folgt :(

27.05.2007 14:06

5 Rudy

oh... ich hatte leider noch keine Zeit es zu testen. Ich muss das also doch zeilenweise einfügen? Gibt es keine Möglichkeit, aus der htaccess zu springen, wenn eine RewriteCond greift?

27.05.2007 14:52 | geändert: 27.05.2007 14:52

6 Jörg Kruse

Ich habe grade was neues getestet, probier mal das:

RewriteCond %{REMOTE_ADDR} !127\.0\.0\.1
RewriteRule ^(.*)$ - [L]

Das L-Flag sollte für ein Ignorieren der folgenden Rules sorgen (L = Last Rule), und das "-" dieser Rule besagt, dass nichts ersetzt wird

27.05.2007 14:55 | geändert: 27.05.2007 14:56

7 Rudy

Ich habe jetzt alles geuppt und die htaccess getestet - funktioniert einwandfrei. Vielen Dank, Jörg.

27.05.2007 15:17

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]