Se eu definir uma opção de configuração em httpd.conf
que não seja usada novamente em nenhum de nossos vhosts, ela terá efeito para cada um dos vhosts ou cada um precisará ter a opção configurada?
Especificamente, quero definir as opções RewriteLog
e RewriteLogLevel
. Infelizmente, temos muito mais configurações de vhost do que é sensato, portanto, definir essa opção em cada arquivo e validar seria um aborrecimento no momento em que precisa ser implantado (não me faça começar no gerenciamento de configuração). Então, se eu configurá-lo httpd.conf
e me certificar de que não está em nenhuma das configurações do vhost, ele se aplicará a todos os vhosts?
De acordo com a documentação do Apache, as seções de configuração são mescladas na seguinte ordem:
<Directory>
(exceto expressões regulares) e .htaccess feito simultaneamente (com .htaccess, se permitido, substituindo<Directory>
)<DirectoryMatch>
(e<Directory "~">
)<Files>
e<FilesMatch>
feito simultaneamente<Location>
e<LocationMatch>
feito simultaneamente<If>
Por exemplo, o seguinte será aplicado na ordem A > B > C > D > E:
Mais informações podem ser encontradas na documentação: https://httpd.apache.org/docs/2.4/sections.html
Editar:
Diretivas como
<Directory>
,<DirectoryMatch>
,<Files>
,<FilesMatch>
,<Location>
,<LocationMatch>
, e<VirtualHost>
simplesmente limitam o escopo das diretivas que elas incluem, portanto, aplicar uma<IfModule>
diretiva à área global do arquivo a aplicará globalmente.Se você estiver tentando substituir
mod_rewrite
, você pode considerar alavancar umaRewriteOptions
diretiva definida comoInheritDown
. Isso fará com que todas as configurações filhas herdem as configurações do escopo pai e é equivalente a colocarRewriteOptions Inherit
em cada escopo filho.Colocar isso globalmente aplicaria suas opções de registro a cada escopo filho.