2010-04-06 6 views
1

Je souhaite réécrire de http://example.com/blah/<something>/<somethingelse> à http://<something>.example.com/<somethingelse>, mais uniquement si la demande est et non une redirection interne. Comment puis-je obtenir cet effet? Je sais que je peux utiliser %{THE_REQUEST}, mais je n'arrive pas à trouver de bons exemples.Réécrire uniquement les demandes externes à une certaine URL

Merci pour l'aide!

Répondre

1

L'indicateur de non-demande de sous-requête ([NS]) ignorera les règles sur les sous-demandes internes.

RewriteCond %{HTTP_HOST} =example.com 
RewriteRule ^/?blah/(.*{]) http://something.example.com/$1 [NS,L] 
+0

"Cette page Web a une boucle de redirection." Nope :( – Cyclone

+0

J'ai ajouté ces drapeaux à ma règle: [R, L, QSA, NS] – Cyclone

+0

@Cyclone: ​​quelles autres règles de réécriture avez-vous? Depuis la règle ci-dessus redirige de "example.com" à "quelque chose.example. com ", il ne créera pas de boucle par lui-même, il créera également une redirection externe, vous n'avez pas besoin de [R] car la substitution est une URL absolue, vous n'avez pas besoin de [QSA] puisque vous êtes – outis