Мне нужно отправить данные с $_SESSION
из файла PHP в .htaccess для настройки переменной Vary для настройки кеша LiteSpeed.
Пример сценария PHP:
<?php $lang = $_SESSION['lang'];?>
Пример .htaccess
...
<IfModule LiteSpeed>
CacheLookup public on
CacheLookup private on
RewriteRule .* - [E=cache-control:max-age=604800]
RewriteRule .* - [E=cache-control:vary=**!!!HERE I NEED TO HAVE $lang value!!!**]
</IfModule>
...
Я уже пробовал эти способы:
"RewriteCond %{HTTP_COOKIE} (.*) [NC]"
. Но у меня будут также личные данные, которые я не могу сохранить в файлах cookie. Так что это не очень хороший подход.(putenv("PROVARY = ".$_SESSION['lang']);)
. Но это не работает. Потому что они умирают в конце запроса.HTTP_SESSION
. Я нашел это имя модуля, но не нашел информации о том, как он работает, или даже о том, как его использовать.Можно ли получить переменные $_SESSION
напрямую из .htaccess? Если да, покажите рабочий пример, как это работает.
Я изменил название. Надеюсь, теперь стало понятнее. Мне нужно, чтобы когда пользователь сделал второй запрос на сайт, я смогу получить данные из его СЕССИИ в .htaccess.
@Philipp спасибо, мужик, это то, что я искал. Любые официальные комментарии от Litespeed. Добавьте свой комментарий как ответ, отмечу
Никогда не рекомендуется кэшировать страницы, основанные только на переменных сеанса, особенно если содержимое изменяется только в зависимости от языка, хранящегося внутри сеанса. Даже LiteSpeed говорит, что не делай этого
Однако вы можете сохранить язык дополнительно в cookie и варьироваться от значения cookie.
Для дальнейших проектов я бы рекомендовал хранить язык внутри uri (example.com/en/...
, example.com/de/...
).
Не совсем уверен, что вы здесь пытаетесь сделать, но
.htaccess
- это просто файл. Если вы хотите изменить его на лету, просто откройте его, прочтите, исправьте и перепишите. Не уверен, что это хорошая идея, но ...