целевой файл htacces - PullRequest
       13

целевой файл htacces

0 голосов
/ 23 декабря 2018

Это должно быть прямолинейно, но, очевидно, нет.

Я пытаюсь предотвратить кэширование файла сервисного рабочего на сервере Apache.

Файл sw.js и егопомещен на /public_html/, как и должно быть.

Я пробовал несколько комбинаций из <FilesMatch ??? > ниже, например "sw\.js$" без успеха.

<FilesMatch "^(sw\.js)$">
  FileETag None
  <ifModule mod_headers.c>
    Header unset ETag
    Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
    Header set Pragma "no-cache"
    Header set Expires "Wed, 08 Jan 1975 05:00:00 GMT"
  </ifModule>
</FilesMatch>

В соответствии с этим , если я запускаю

 `curl -I -L https://www.soeezauto.com/sw.js | grep cache-control` 

Я должен получить cache-control: no-cache, но я не получаю.

1 Ответ

0 голосов
/ 23 декабря 2018

Ваше регулярное выражение в директиве FilesMatch выглядит правильно.Однако обратите внимание, что Apache отправит следующий заголовок в ответе:

Cache-Control: max-age=0, no-cache, no-store, must-revalidate

Обратите внимание на имя заголовка смешанного регистра здесь Cache-Control.

Ваша команда grep ищет все заголовки в нижнем регистре, т.е.cache-control, следовательно, никакой вывод не отображается.

Вам нужно использовать -i (игнорировать регистр) совпадения в grep или искать точно такой же заголовок, т.е. Cache-Control.

Такподойдет любой из следующих grep:

grep -i 'cache-control'

или

grep 'Cache-Control'

Для повышения эффективности добавьте параметр -F для поиска по фиксированной строке, так как вы не используете регулярное выражение вgrep шаблон, чтобы сделать это:

grep -iF 'cache-control'
...