gpt4 book ai didi

.htaccess - htaccess 从 www 到非 www,在 session /cookie 中引入变量

转载 作者:行者123 更新时间:2023-12-02 23:01:19 25 4
gpt4 key购买 nike

.htacces 从 www.example.com 重定向到 example.com(没有 www 的相同域)
返回的访问者可以在用户代理中拥有 visitor_id cookie。
我想通过 cookie 或 session 中的域带来这个值。
我尝试了这个,但 cookie 是为 www 域创建的

RewriteCond %{HTTP_HOST} ^www.example.com
RewriteCond %{HTTP_COOKIE} visitor_id=([^;]+)
RewriteRule .* - [C,env=foo:%1]
RewriteRule ^(.*) http://example.com [L,R=301]
Header set Set-Cookie "visitor_id=%{foo}e; path=/" env=foo

此外,环境变量适用于本地主机(Apache 2.4.2,Win32),但在线(Apache 2.2.25,linux)cookie中的值是“%{foo}e”而不是预计数量。

还尝试过 mod_session_cookie 但找不到实际示例。

如何通过域进行重定向,将 visitor_id 引入 Cookie 或 session Cookie?

最佳答案

由于环境 %{env} 变量在不同的 Apache 版本中表现不一致,我建议使用 RewriteRule 设置 cookie本身使用 [CO] cookie 标志。

RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
RewriteCond %{HTTP_COOKIE} visitor_id=([^;]+) [NC]
RewriteRule .* $0/vid/%1 [C] # Appends the cookie value to the URL
RewriteRule ^(.*)/vid/(.*)$ http://example.com/$1 [L,R=301,CO=visitor_id:$2:.example.com:14400:/]

以下是对 .htaccess 文件所做的更改列表:

  • RewriteCond 匹配现在不区分大小写(使用 [NC])

  • %{HTTP_HOST} 条件中的点已转义 \.(. 匹配任何其他字符)

  • 第一个 RewriteRule 将访问者 ID(捕获为 %1)附加到 URL(捕获为 $0)

  • 最后一个 RewriteRule 从 URL 解析访问者 ID(如 $1)并执行永久 [R=301]重定向到 http://example.com 并使用 [CO] 标志写入名为 visitor_id 的 cookie。

    <

cookie重写标志的语法如下

[CO=NAME:VALUE:DOMAIN:lifetime:path:secure:httponly]

其中必须指定名称的值。 生命周期默认为0,这意味着cookie仅在当前浏览器 session 中持续存在。 Path 默认为 /securehttponly 默认为 false

使用的[CO]标志将指定为.example.com,以便cookie可访问到 example.com 域下的所有主机。 生命周期被指定为14400,以分钟为单位,因此总计10天。

关于.htaccess - htaccess 从 www 到非 www,在 session /cookie 中引入变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18198757/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com