Чтобы облегчить себе жизнь с появлением новых 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.