/xyz/(abc|def)(.*) http://bla.bla/xyz/$1/$1$2
Nö,
Das kann ich so nicht stehen lassen :)
Nach reiflicher Überlegung und extensivem Einsatz von telnet stelle ich hiermit zu meiner Ehrenrettung fest, daß folgendes definitiv funktioniert:
^/xyz/(abc|def)([^/]+)$ http://bla.bla/xyz/$1/$1$2
Dieses Muster reagiert nicht mehr auf Adressen, die nach abc oder def noch einen Schrägstrich haben ( [^/] ). Andersrum ausgedrückt: Es reagiert nur noch auf Adressen, die sich auf "Dateien" im Verzeichnis xyz beziehen, nicht mehr auf Unterverzeichnisse von xyz.
Außerdem muß abc... bzw. def... der letzte Teil der Adresse sein ( $ am Ende des Musters) und es muß nach abc bzw. def noch mindestens ein Zeichen folgen (das + hinter [^/] bedeutet "ein oder mehrere des davorstehenden").
Last but not least wird davon ausgegangen, daß eine komplette Adresse verglichen wird, /xyz muß also am Anfang der URL stehen, direkt nach dem Hostnamen ( ^ ganz vorne).
Gruß,
soenk.e