【问题标题】:Apache MOD_REWRITE Domain Level CookieApache MOD_REWRITE 域级 Cookie
【发布时间】:2010-09-18 18:00:18
【问题描述】:

我需要处理我们网站上的会员跟踪。

在我们的 .htaccess 中我们有:

RewriteCond %{QUERY_STRING} affiliate=(.*)
RewriteRule ^(.*)$ $1?  [NC,R,L,co=AFFID:%1:%{HTTP:Host}:7200:/]

这会创建一个名为 AFFID 的 COOKIE,其 URL 参数关联的值。

但 Cookie 并不适用于整个域,即转到 http://www.domain.com/?affiliate=bmk 为 .www.domain.com 设置值为 bmk 的 AFFID cookie,但我希望 ti 用于 .domain.com 以便它可以在我们的安全域中使用,即secure.domain.com

任何帮助将不胜感激

干杯

【问题讨论】:

    标签: apache mod-rewrite cookies


    【解决方案1】:

    为什么不直接硬编码呢?

    RewriteRule ^(.*)$ $1?  [NC,R,L,co=AFFID:%1:.domain.com:7200:/]
    

    如果你不能这样做,你必须匹配域,像这样(未经测试):

    RewriteCond %{QUERY_STRING} affiliate=(.*)
    #This would work only for xxx.dom.com or dom.com forms, not for x.y.dom.com
    RewriteCond %{HTTP_HOST} [^.]*?\.?([^.]+\.[^.]+) 
    RewriteRule ^(.*)$ $1?  [NC,R,L,co=AFFID:%1:.%2:7200:/]
    

    【讨论】:

    • 我试过了,但你输掉了第一场比赛,所以你只能得到域。由于我们拥有的环境和多个域,我无法硬编码。很高兴我的思路是正确的。
    • 第一局怎么就输了?它应该可以工作... %1 = 第一场比赛 %2 = 第二场比赛,依此类推,如果你使用更多捕获,它可能是不同的数字
    猜你喜欢
    • 2011-04-23
    • 2013-04-24
    • 1970-01-01
    • 2011-05-03
    • 2011-02-04
    • 2011-05-30
    • 2012-05-09
    • 2013-02-04
    • 1970-01-01
    相关资源
    最近更新 更多