dedlfix: mod_rewrite, Backreference auf RewriteCond

Beitrag lesen

Hi!

Du hast das Wörtchen "matched" überlesen. Und beide RewriteConds haben bei dir nur ein Element, also ist %2 ungültig und nur %1 vorhanden.
Ich steh' am Schlauch.
Wenn ich im oberen Beispiel http://www.example.com/willkommen.php aufrufen, sollte doch die erste RewriteCond zu einem Match führen, nämlich "willkommen" und die zweite RewirteCond zu einem Match auf "www.example.com"

Es müssen alle passen, denn AND ist das Default-Verhalten. Dann kann "the last matched RewriteCond in the current set of conditions" im Prinzip nur die letzte Regel vor der RewriteRule sein. Es sei denn, du hast sie mit OR verknüpft, dann könnte man mit dem Kurzschlussverfahren bereits nach der ersten zutreffenden Cond abbrechen, welche dann "the last matched ..." wäre. Aber dazu finde ich nicht genug Erklärungen in der Dokumentation.

Ein Beispiel zeigt die mehrfache Verwendung der back references. Da bezieht sich das %1 der jeweils letzten RewriteCond auf den geklammerten Wert ihres Vorgängers und das %1 in der RewriteRule auf die letzte RewriteCond. Das zeigt, dass zumindest beim Default-AND sich die Referenz auf die jeweils davor stehende Cond bezieht.

Folgendes sollte doch kein Problem sein, oder?
RewriteRule foo http://%{HTTP_HOST}/bar/? [R=301,L]

Ach, da "hinten". Im Muster der URL können diese Variablen natürlich nicht verwendet werden, aber im Ersetzungsteil soll das doch gehen. Wieder was gelernt.

Lo!