Рейтинг:1

RewriteRule с флагом [L] останавливает кеширование?

флаг cn

Я использую программное обеспечение для управления сервером 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 игнорируется.

флаг kz
Как именно вы устанавливаете заголовок «Expires»? Где вы используете эти директивы? Какие еще директивы у вас есть? «в apache ** и ** nginx» — как Nginx вписывается в это? (Кроме того, все современные браузеры используют заголовок Cache-Control + max-age вместо заголовка Expires.)
флаг cn
Спасибо, я отредактировал свой вопрос. Cache-Control работает, но почему не ExpiresByType и почему статические файлы вообще не обрабатываются nginx?
Рейтинг:1
флаг kz

почему статические файлы вообще не обрабатываются nginx?

Так как /фальшивка/file.js больше не является «статическим файлом» (его не существует), поэтому он передается Apache, где он внутренне переписывается для получения требуемого ответа.

ExpiresByType текст/javascript A31556952

текст/javascript может быть не "правильным" типом mime для ответов JavaScript на ваш сервер. Вам необходимо подтвердить, какой MIME-тип (т. Тип содержимого заголовок) ваш сервер отправляет эти ответы, но обычно это приложение/javascript вместо этого в эти дни. Другими словами:

Приложение ExpiresByType/javascript A31556952

Чтобы уточнить, mod_expires ExpiresByType устанавливает как Истекает и Cache-Control: максимальный возраст Заголовки ответа HTTP. Cache-Control: максимальный возраст имеет приоритет во всех современных браузерах. Истекает действительно только для устаревшей поддержки.

Флаг [L] в RewriteRule должен остановить обработку статических файлов nginx

л флаг просто останавливает текущий проход механизма перезаписи на Apache. Сами по себе эти директивы не влияют на Nginx (который, казалось бы, действует как внешний прокси).

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.