0

我需要将数据从$_SESSIONPHP 文件发送到 .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>
...

我已经尝试过这些方法:

  1. 通过 cookie。我在 cookie 中设置 PHP 变量,并通过 .htaccess 从那里获取它"RewriteCond %{HTTP_COOKIE} (.*) [NC]"。但我也会有无法在 cookie 中设置的私人数据。所以这种方法不是很好。
  2. 通过 ENV 变量(putenv("PROVARY=".$_SESSION['lang']);)。但它不起作用。因为他们在请求结束时死亡。
  3. HTTP_SESSION. 我找到了这个模块的名称,但没有找到有关它如何工作甚至如何使用它的信息。

$_SESSION是否可以直接从 .htaccess获取变量?如果是,请展示其工作原理的工作示例。

4

1 回答 1

1

仅基于会话变量来缓存页面绝不是一个好主意 - 特别是如果内容仅根据会话中存储的语言而变化。即使 LiteSpeed 说,不要这样做

但是,您可以将语言附加存储在 cookie 中,并根据 cookie 值进行更改。

对于进一步的项目,我建议将语言存储在 uri ( example.com/en/..., example.com/de/...)

于 2018-08-03T13:56:30.273 回答