
Intento utilizar la primera parte del fqdn como objetivo de reescritura:
http://demo.dev.example.com/algo=>http://demo.dev.example.com/demo/algo
RewriteCond %{HTTP_HOST} ^([a-z0-9-]+).dev.example.com [NC]
RewriteRule ^/(.*) http://%1.dev.example.com/%1/$1 [P]
Esto crea un bucle sin fin. Entonces necesito otra condición que verifique si esta solicitud ya está reescrita o no:
RewriteCond %{REQUEST_URI} !^/%1
Bueno, esto no funciona, la documentación no dice nada sobre el uso de referencias inversas en CondPatterns, lo más probable es que no sea compatible.
RewriteCond %{REQUEST_URI} !^/demo
Esto funciona perfectamente, pero no es dinámico.
Respuesta1
Solución/solución alternativa: reserve una parte del nombre de host para solicitudes internas:
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]
Respuesta2
Si no necesita procesar ninguna regla después de la reescritura, simplemente agregue la opción "L" = "última" entre corchetes:
RewriteRule ^/(.*) http://%1.dev.example.com/%1/$1 [P,L]