Назад | Перейти на главную страницу

Срок действия кеша браузера WordPress Nginx истекает для URL без расширения

Немного борюсь со следующим.

Добавить 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;

Любые советы в правильном направлении приветствуются, спасибо.