<-
Apache > Serveur HTTP > Documentation > Version 2.4 > Rewrite

Utilisation de mod_rewrite comme mandataire

Langues Disponibles:  en  |  fr 

Ce document est un compl�ment de la documentation de r�f�rence du module mod_rewrite. Il d�crit comment utiliser le drapeau [P] de la directive RewriteRule pour mandater un contenu vers un autre serveur. Plusieurs recettes d�crivant des sc�narios courants sont fournies.

Voir aussi

top

Mandater du contenu avec mod_rewrite

Description :

mod_rewrite impl�mente le drapeau [P] qui permet de passer des URLs, via mod_proxy, � un autre serveur. Deux exemples sont fournis ici. Dans le premier, une URL est pass�e directement � un autre serveur, et servie comme si c'�tait une URL locale. Dans le deuxi�me, nous mandatons un contenu manquant vers un serveur d'arri�re-plan.

Solution :

Pour passer une URL � un autre serveur, on utilise le drapeau [P] comme suit :

RewriteEngine  on
RewriteBase    /produits/
RewriteRule    ^widget/(.*)$  http://produits.example.com/widget/$1  [P]
ProxyPassReverse /produits/objet/ http://produits.example.com/objet/

Dans le deuxi�me exemple, nous ne mandatons la requ�te que si nous ne trouvons pas la ressource localement. Ceci peut s'av�rer tr�s utile lorsque vous effectuez une migration d'un serveur vers un autre, et que vous n'�tes pas certain que tout le contenu a d�j� �t� migr�.

RewriteCond %{REQUEST_FILENAME}       !-f
RewriteCond %{REQUEST_FILENAME}       !-d
RewriteRule ^/(.*) http://ancien.exemple.com/$1 [P]
ProxyPassReverse / http://ancien.exemple.com/
Discussion :

Dans les deux cas, on ajoute une directive ProxyPassReverse afin de s'assurer que toute redirection en provenance du serveur d'arri�re-plan est renvoy�e correctement au client.

Chaque fois que cela est possible, pr�f�rez l'utilisation de la directive ProxyPass ou ProxyPassMatch � mod_rewrite.

Langues Disponibles:  en  |  fr 

top

Commentaires

Notice:
This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our mailing lists.