Немного борюсь со следующим.
Добавить expires для JS и CSS, а также для других статических файлов очень просто:
# Directives to send expires headers.
location ~* \.(?:css|js)$ {
expires 28d;
access_log off;
add_header Cache-Control "public";
}
Но с моими причудливыми URL-адресами я не понимаю. Переписанные URL-адреса выглядят так:
www.domain.tld/post-name
Таким образом, нет расширений, таких как .html или .php, а домашняя страница - это просто /. Обратите внимание, что моя домашняя страница статична, нет последних новостей / сообщений в блогах и т. Д., Поэтому я также хочу, чтобы это было кешировано в браузере.
Добавление истекающего в этот блок местоположения не добавляет кеш браузера на домашнюю страницу:
location / {
try_files $uri $uri/ /index.php?$args;
expires 1d;
}
Добавление истекает в местоположение файла php (до перезаписи) тоже не работает, Nginx, похоже, хочет получить точный запрошенный URI.
Я видел это предложение, но я опасаюсь использовать слишком много операторов if:
location / {
if (-f $request_filename) {
expires 30d;
break;
}
}
Каков наилучший подход к тому, чтобы на таком простом 5-страничном сайте все страницы были кэшированы браузером? В идеале без жесткого кодирования URL-адресов.
www.domain.tld / www.domain.tld / наши-продукты www.domain.tld / наши-сервисы www.domain.tld / about-us www.domain.tld / contact
Возможно ли добавить истечение срока действия по типу mime вместо расширения, как мы делаем с gzip?
mime_type text/html
expires 1d;
Любые советы в правильном направлении приветствуются, спасибо.