Apache не соблюдает порядок конфигурации внутри файлов конфигурации
Я поддерживаю свой VPS, который служит веб-сервером. Он запускает Apache 2.4, и в httpd.conf у меня есть эти директивы (в таком порядке):
Include /etc/apache2/modules.d/*.conf
Include /etc/apache2/vhosts.d/*.conf
Внутри /etc/apache2/modules.d/ есть файл conf с таким содержимым:
<IfModule mod_expires.c>
ExpiresActive on
ExpiresDefault "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
ExpiresByType application/x-javascript "access plus 1 month"
ExpiresByType text/javascript "access plus 1 month"
</IfModule>
Внутри /etc/apache2/vhosts.d есть файл конфигурации vhost, в котором у меня есть:
<VirtualHost *:443>
<IfModule mod_expires.c>
<LocationMatch "^/(piwik|matomo)\.js$">
ExpiresDefault "access plus 5 days"
</LocationMatch>
</IfModule>
</VirtualHost>
Теперь, когда я открываю piwik.js или matomo.js, он должен вернуть дату истечения 5 дней спустя от времени доступа, однако он возвращается через месяц.
Почему это не
LocationMatch
директивная работа и общий
ExpiresByType
директива имеет приоритет? Если я изменю
ExpiresByType text/javascript "access plus 1 month"
линия к
ExpiresByType text/javascript "access plus 1 week"
, Я вижу, что срок действия истекает через неделю. Разве директива LocationMatch не должна работать и возвращать небольшую дату истечения срока действия этих двух файлов javascript?