Apache. Документация на русском


Разделы:   1    2    3      4      5    6    7    8    9    10    11    12    13    14    15    16  

Раздел 4. Руководство по перезаписи URL

Пункты:   35    36    37    38      39      40    41    42    43    44  

 <         > 
  RU            EN  

Пункт 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.



 <         > 

Пункты:   35    36    37    38      39      40    41    42    43    44  

Рейтинг@Mail.ru