Здравствуйте
Сайт на Wordpress с плагином кэширования WPRocket
У меня стала задача перенаправить первый раз вошедшего пользователя на страницу в нужной языковой локалью, только для главной страницы.
Причем по дефолту в плагине переводов стоит локаль ru а перенаправлять надо на локаль uk. Поменять дефолтную локаль не вариант, т.к. слетит вся индексация.
Проверить что это новый пользователь можно по отсутствию cookie с ключом "language"
И все бы ничего, можно было бы проверить это в коде и сделать редирект. Но стоит плагин кэшировния который настроен через htaccess и если страница закэширована вообще не запускает код, а просто отдает готовую страницу.
Я попробовал дописать свое правило. Если мы на главной и нет сегмента \uk и нет cookie language то добавить сегмент \uk
Привожу кусок файла htaccess с правилами которые были и которые я добавил
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTPS} on [OR]
RewriteCond %{SERVER_PORT} ^443$ [OR]
RewriteCond %{HTTP:X-Forwarded-Proto} https
RewriteRule .* - [E=WPR_SSL:-https]
RewriteCond %{HTTP_ACCEPT} image/webp
RewriteCond "%{DOCUMENT_ROOT}/wp-content/cache/wp-rocket/%{HTTP_HOST}%{REQUEST_URI}/.no-webp" !-f
RewriteRule .* - [E=WPR_WEBP:-webp]
RewriteCond %{HTTP:Accept-Encoding} gzip
RewriteRule .* - [E=WPR_ENC:_gzip]
#Start: добавление сегмента /uk
RewriteCond %{REQUEST_METHOD} GET
RewriteCond %{QUERY_STRING} =""
RewriteCond %{HTTP:Cookie} !^.*language.*$ [NC]
RewriteCond %{REQUEST_URI} ^(www)?\.mysite\.ua$ [NC]
RewriteRule .* "%{REQUEST_URI}%/uk" [L]
#End
RewriteCond %{REQUEST_METHOD} GET
RewriteCond %{QUERY_STRING} =""
RewriteCond %{HTTP:Cookie} !(wordpress_logged_in_.+|wp-postpass_|wptouch_switch_toggle|comment_author_|comment_author_email_) [NC]
RewriteCond %{REQUEST_URI} !^(/(.+/)?feed/?.+/?|/(?:.+/)?embed/|/uk/checkout/(.*)|/uk/cart/|/uk/my-account/(.*)|/wc-api/v(.*)|/(index\.php/)?wp\-json(/.*|$))$ [NC]
RewriteCond %{HTTP_USER_AGENT} !^(facebookexternalhit).* [NC]
RewriteCond "%{DOCUMENT_ROOT}/wp-content/cache/wp-rocket/%{HTTP_HOST}%{REQUEST_URI}/index%{ENV:WPR_SSL}%{ENV:WPR_WEBP}.html%{ENV:WPR_ENC}" -f
RewriteRule .* "/wp-content/cache/wp-rocket/%{HTTP_HOST}%{REQUEST_URI}/index%{ENV:WPR_SSL}%{ENV:WPR_WEBP}.html%{ENV:WPR_ENC}" [L]
</IfModule>
# END WP Rocket
Но првила не срабатывают.
Прошу помощи в правильном написании этого набора правил
Заранее благодарю.