Я использую программное обеспечение для управления сервером plesk с apache и nginx. Я установил в apache и nginx просроченный заголовок для файлов javascript на один год. Это работает.Я вижу один год для «истекает» в заголовке.
Теперь я хочу получить доступ к файлам javascript и php с перезаписью (без перенаправления).
АПАЧ
ExpiresActive On
ExpiresByType текст/javascript A31556952
RewriteEngine включен
RewriteRule подделка/(.+\.(?:js|php))$ оригинал/$1 [L]
Nginx
расположение ~* ^/(.*\.js)$ {
try_files $uri @fallback;
истекает 1 год;
add_header Cache-Control "public";
}
Это RewriteRule работает. Я могу получить доступ к этим файлам, но заголовок «expires» в «fake/file.js» исчез. Что я делаю не так?
example.com/original/file.js = истекает через год
example.com/fake/file.js = без заголовка для истечения срока действия
РЕШЕНИЕ
Все статические файлы обычно обрабатываются NGINX, а не apache. Поэтому установите в апаче эту строку для javascript, дайте ей кеш.
Заголовок установил Cache-Control "max-age=31556952, public"
Флаг [L] в RewriteRule должен останавливать обработку статических файлов nginx, а ExpiresByType игнорируется.