【发布时间】:2018-08-03 13:26:55
【问题描述】:
我需要将来自$_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>
...
我已经尝试过这些方法:
- 通过 cookie。我在 cookie 中设置 PHP 变量,并通过
"RewriteCond %{HTTP_COOKIE} (.*) [NC]"从 .htaccess 中获取它。但我也会有无法在 cookie 中设置的私人数据。所以这种方法不是很好。 - 通过 ENV 变量
(putenv("PROVARY=".$_SESSION['lang']);)。但它不起作用。因为他们在请求结束时死亡。 -
HTTP_SESSION。我找到了这个模块的名称,但没有找到有关它如何工作甚至如何使用它的信息。
是否可以直接从.htaccess 中获取$_SESSION 变量?如果是,请展示其工作原理的工作示例。
【问题讨论】:
-
不太确定你想在这里做什么,但
.htaccess只是一个文件。如果您想即时修改,则只需打开、阅读、修改和重写即可。不确定这是个好主意,但是..... -
我改了标题。希望现在更清楚了。我需要当用户向站点发出第二个请求时,我将能够从他的 .htaccess 中的 SESSION 中获取数据。
-
@Philipp 谢谢你,伙计,这就是我要找的。来自 Litespeed 的任何官方 cmets。添加您的评论作为答案,我会标记它
标签: php linux apache .htaccess litespeed