wahsaga: Doppelter Mod_rewrite

Beitrag lesen

hi,

RewriteRule ^(.*)-(.*).php$ /$1_$2.php [L]
RewriteRule ^(.*)_(.*).php$ /$1-$2.php [R=permanent,L]

Das Problem dabei: Es gibt eine Endlosschleife, weil der Apache scheinbar intern einen neuen Request an sich selbst stellt und dabei wieder seine eigenen Rules durchgeht.

Das Flag L beim Redirect ist witzlos, weil anschließend ein neuer externer Request durch den Client erfolgt - neue Anfrage, das ganze Spiel _muss_ von vorne losgehen.

Wie wär's denn, wenn du die Reihenfolge der Regeln mal umdrehst?

Erst *_* in *-* umschreiben, Redirect machen.

Neuer Request, auf das Muster *_* passt die Anfrage nicht mehr, also wird nur die nachfolgende Regel ausgeführt, die aus *-* wieder *_* macht.
Und da sollte jetzt das Flag L gesetzt sein, damit es jetzt nicht mit *_* wieder intern mit der Umschreibung weitergeht, was dann wieder einen Redirect auslösen würde, ...

gruß,
wahsaga

--
/voodoo.css:
#GeorgeWBush { position:absolute; bottom:-6ft; }