Vejo frequentemente exemplos de configurações do VirtualHost em que <Directory>
blocos são colocados fora da sub-rotina <VirtualHost>
da seguinte forma:
# /etc/httpd/conf.d/example1.conf
<Directory /var/www/html/example1>
Require all granted
</Directory>
<VirtualHost *:80>
DocumentRoot "/var/www/html/example1"
ServerName www.example.com
ServerAlias example.com
ServerAdmin [email protected]
ErrorLog "/var/log/httpd/error_log_example1"
CustomLog "/var/log/httpd/access_log_example1" combined
</VirtualHost>
O exemplo a seguir, com o bloco <Directory>
contido dentro da , a estrofe <VirtualHost>
está mais semanticamente correto?
# /etc/httpd/conf.d/example2.conf
<VirtualHost *:80>
<Directory /var/www/html/example2>
Require all granted
</Directory>
DocumentRoot "/var/www/html/example2"
ServerName www.example.org
ServerAlias example.org
ServerAdmin [email protected]
ErrorLog "/var/log/httpd/error_log_example2"
CustomLog "/var/log/httpd/access_log_example2" combined
</VirtualHost>
O segundo método parece correto para mim já que o bloco pertence ao VirtualHost individual e, se necessário, irá substituir as configurações no httpd.conf principal.
Editar: o segundo método exigiria a duplicação do bloco <Directory>
se o TLS / SSL estiver habilitado, o que não é muito DRY. Por esse motivo, o primeiro método parece estar correto.