Назад | Перейти на главную страницу

Apache ProxyPass в динамическом массовом виртуальном хостинге

Чтобы облегчить себе жизнь с появлением новых vhosts, я настроил свой httpd.conf, чтобы использовать это:

<IfModule mod_vhost_alias.c>
  <VirtualHost *:80>
    RewriteEngine On
    RewriteCond %{SERVER_PORT}s ^(443(s)|[0-9]+s)$
    RewriteRule ^(.*)$ - [env=askapache:%2]

    RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$
    RewriteRule ^(.*) http://www.%{HTTP_HOST}/$1 [R=301]

    ServerAlias *
    UseCanonicalName Off
    LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon
    CustomLog /var/log/httpd/access_log vcommon
    VirtualDocumentRoot /web-data/vhosts/%0/httpdocs
    VirtualScriptAlias  /web-data/vhosts/%0/httpdocs
  </VirtualHost>
</IfModule>

Проблема в том, что одному из хостов необходимо использовать оператор ProxyPass. Я просто собирался поместить это в отдельный файл conf в папке conf в корне этого сайта (а не в Doc Root вне папки httpdocs). Однако я не могу понять, как это сделать и включить в динамический виртуальный хостинг. Что я могу сделать, чтобы настроить ProxyPass только для этого хоста, не нарушая при этом динамическую настройку виртуального хостинга?

Редактировать:

Я пробовал следующее в моем файле .htaccess, но безрезультатно. Я получаю 404

RewriteEngine on
RewriteRule ^blog/$ http://blog.mydomain.com [P,L]

Вероятно, вы можете определить свои прокси в отдельном файле conf в каталоге Apache conf, а затем использовать правила перезаписи с флагом P (который использует mod_proxy под капотом) в файле htaccess.