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?

0 ответов

Другие вопросы по тегам