Serveur Apache HTTP Version 2.4
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.
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.
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/
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.