У меня есть следующий файл конфигурации на моей машине Debian:
<VirtualHost *:80>
ServerAdmin me@domain.tld
VirtualDocumentRoot /var/workspace/www/%2_%3/%1
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/workspace/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Что отлично подходит для автоматизации - я просто создаю каталог по определенному пути, а домен просто начинает работать.
Но иногда мне нужно запускать приложения, в которых есть документация где-то еще (обычно www dir или что-то еще), как мне указать этот VirtualHosts и продолжить работу старых автоматических VirtualHosts?
Когда я добавляю, например, это:
<VirtualHost *:80>
ServerName www.phabricator.com.local
DocumentRoot /var/workspace/www/phabricator_com/www/webroot
RewriteEngine on
RewriteRule ^/rsrc/(.*) - [L,QSA]
RewriteRule ^/favicon.ico - [L,QSA]
RewriteRule ^(.*)$ /index.php?__path__=$1 [L,QSA]
SetEnv PHABRICATOR_ENV custom/socialbakers
</VirtualHost>
Он направляет все запросы в /var/workspace/www/phabricator_com/www/webroot
и игнорирует других vhosts (упомянутых выше).
Зачем?