Остановите URL-адреса кэширования WordPress, которые соответствуют шаблону, или если пользователь вошел в систему и существует файл cookie - PullRequest
0 голосов
/ 26 февраля 2019

Я размещаю WordPress сайт на Apache / MySQL с Hostinger.В дополнение к некоторым постам и страницам с простым контентом есть родительская страница /members/ и дочерние страницы, которые доступны только для зарегистрированных пользователей, например:

/members/
/members/lorem/
/members/ipsum/
/members/dolor/

Я думаю, что это можно сделать с помощью.htaccess - проверка наличия WordPress, зарегистрированного в cookie, и установка заголовков cache / expires для прекращения кэширования.

Я ищу способ использования .htaccess для предотвращения кэширования любых страниц со словом member в URL.Я видел несколько примеров, которые работают с использованием <FilesMatch>, но они проверяют только имя файла и расширение, а не весь URL, чтобы соответствовать шаблону перед именем файла.Я также видел, что <location>, <directory> и <directorymatch> можно использовать, но только если хост-провайдер предоставляет вам доступ к серверу, чего у меня нет.

Я не могунайдите решение, которое работает с использованием файла .htaccess или комбинации с WordPress и пользовательским PHP.

Для моих настроек постоянных ссылок в WordPress задано значение «Имя сообщения», а мой .htaccess файл в настоящее время содержит:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Примечание: Я не хочу использовать плагин для этого по разным причинам.

1 Ответ

0 голосов
/ 27 февраля 2019

Я понял это.Вот что сработало в моем .htaccess файле

# BEGIN custom CACHE BUSTING
#<IfModule mod_rewrite.c>
    ## No ETags so cache headers work better
    #FileETag None
    #Header unset ETag

    ## Look for URLS starting with /member with anything after it, or containing login
    #RewriteCond %{REQUEST_URI} ^\/(member(.*)|(.*)login(.*))
    #RewriteRule ^ - [E=NOCACHE:1] ## Set our env variable
    #Header always set CHECK_NOCACHE "%{REDIRECT_NOCACHE}e" env=REDIRECT_NOCACHE ##custom header for testing, will show up if URL pattern matches above

    ## Do all cache busting, note NOCACHE is give a REDIRECT_ prefix, so have to read and check it by it's new name REDIRECT_NOCACHE
    #Header unset Pragma env=REDIRECT_NOCACHE
    #Header unset Cache-Control env=REDIRECT_NOCACHE
    #Header unset Last-Modified env=REDIRECT_NOCACHE
    #Header always set Pragma "no-cache" env=REDIRECT_NOCACHE
    #Header always set Cache-Control "s-maxage=0, max-age=0, no-cache, no-store, must-revalidate" env=REDIRECT_NOCACHE
    #Header always set Expires "Thu, 1 Jan 1970 00:00:00 GMT" env=REDIRECT_NOCACHE
#</IfModule>
# END custom CACHE BUSTING
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...