Adicione seu bloco < DirectoryMatch > diretamente à configuração do servidor, não o coloque dentro de um bloco < VirtualHost > . Confira aqui mais informações sobre o escopo desta diretiva: link
Eu tenho um servidor Apache com vários webprojetos. Todo projeto tem um desenvolvimento e um site de produção associado assim:
/srv/www/project1/dev
/srv/www/project1/prod
/srv/www/project2/dev
/srv/www/project2/prod
/srv/www/project3/dev
/srv/www/project3/prod
Todo projeto também tem um arquivo de host virtual - isso é para o projeto 1:
# Prod
<VirtualHost 123.45.789.123:80>
ServerAdmin [email protected]
ServerName www.johndoe.com
DocumentRoot /srv/www/project1/dev
</VirtualHost>
# Dev
<VirtualHost 123.45.789.123:80>
ServerAdmin [email protected]
ServerName dev.johndoe.com
DocumentRoot /srv/www/project1/dev
# enable php error_reporting for development site
<Directory /srv/www/project1/dev>
<IfModule mod_php5.c>
php_value error_reporting 214748364
php_flag display_errors 1
</IfModule>
</Directory>
</VirtualHost>
Tudo está funcionando bem assim. No entanto, acho redundante adicionar a parte IfModule mod_php5.c a todos os hosts virtuais. É possível adicioná-lo ao arquivo host virtual padrão como este (eu tentei e não consigo fazer isso funcionar):
<DirectoryMatch "^/srv/www/.+/dev">
<IfModule mod_php5.c>
php_value error_reporting 214748364
php_flag display_errors 1
</IfModule>
</DirectoryMatch>
Ansioso para ouvir sua opinião!
Adicione seu bloco < DirectoryMatch > diretamente à configuração do servidor, não o coloque dentro de um bloco < VirtualHost > . Confira aqui mais informações sobre o escopo desta diretiva: link
Tags php virtualhost apache-2.2