
Ich versuche, den ersten Teil des FQDN als Umschreibziel zu verwenden:
http://demo.dev.example.com/etwas=>http://demo.dev.example.com/demo/etwas
RewriteCond %{HTTP_HOST} ^([a-z0-9-]+).dev.example.com [NC]
RewriteRule ^/(.*) http://%1.dev.example.com/%1/$1 [P]
Dadurch entsteht eine Endlosschleife. Ich brauche also eine weitere Bedingung, die prüft, ob diese Anfrage bereits umgeschrieben wurde oder nicht:
RewriteCond %{REQUEST_URI} !^/%1
Nun, das funktioniert nicht, in der Dokumentation steht nichts über die Verwendung von Rückreferenzen in CondPatterns, höchstwahrscheinlich wird es nicht unterstützt.
RewriteCond %{REQUEST_URI} !^/demo
Dies funktioniert einwandfrei, ist aber nicht dynamisch.
Antwort1
Lösung/Workaround: Reservieren Sie einen Hostnamenteil für interne Anfragen:
RewriteCond %{HTTP_HOST} !^internal.dev.atizo.org [NC]
RewriteCond %{HTTP_HOST} ^([0-9a-z-]+).dev.atizo.org [NC]
RewriteRule ^/(.*) http://internal.dev.atizo.org/%1/$1 [P]
Antwort2
Wenn Sie nach dem Umschreiben keine Regeln verarbeiten müssen, fügen Sie einfach die Option „L“ = „last“ in die eckigen Klammern ein:
RewriteRule ^/(.*) http://%1.dev.example.com/%1/$1 [P,L]