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.