| Раздел 4. Руководство по перезаписи URL
Пункт 39. Динамическое проксирование с mod_rewrite Этот документ дополняет mod_rewrite
справочную документацию. В нем описывается, как использовать флаг [P] правила RewriteRule для проксирования содержимого на другой сервер. Предоставляется ряд рецептов, описывающих распространенные сценарии.
Проксирование контента с помощью mod_rewrite
- Описание:
-
mod_rewrite предоставляет флаг [P], который позволяет передавать URL-адреса через mod_proxy на другой сервер. Здесь приведены два примера. В одном примере URL-адрес передается непосредственно на другой сервер и обслуживается так, как если бы он был локальным URL-адресом. В другом примере мы проксируем отсутствующий контент на внутренний сервер.
- Решение:
-
Чтобы просто сопоставить URL-адрес с другим сервером, мы используем флаг [P] следующим образом:
RewriteEngine включен
RewriteBase "/продукты/"
RewriteRule "^widget/(.*)$" "http://product.example.com/widget/$1" [P]
ProxyPassReverse "/products/widget/" "http://product.example.com/widget/"
Во втором примере мы проксируем запрос, только если не можем найти ресурс локально. Это может быть очень полезно при переносе с одного сервера на другой и вы не уверены, что все содержимое уже перенесено.
RewriteCond "%{REQUEST_FILENAME}" !-f
RewriteCond "%{REQUEST_FILENAME}" !-d
RewriteRule "^/(.*)" "http://old.example.com/$1" [P]
ProxyPassReverse "/" "http://old.example.com/"
- Обсуждение:
В каждом случае мы добавляем ProxyPassReverse директиву, чтобы гарантировать, что любые перенаправления, выданные серверной частью, правильно передаются клиенту.
Рассмотрите возможность использования одного ProxyPass или ProxyPassMatch по возможности вместо mod_rewrite.
|
|