【问题标题】:Use RewriteMap against a cookie value with RewriteRule通过 RewriteRule 对 cookie 值使用 RewriteMap
【发布时间】:2014-08-01 04:52:15
【问题描述】:

我正在尝试转义由 RewriteRule 设置的 cookie 值。

例如,假设我的网站是http://www.example.com/blah/foo%2Bbar

我需要获取 URL 的一部分并将其作为 cookie 发回。

在这种情况下,我可以看到 Apache 未转义的 url。

浏览器返回的是:

Set-Cookie:mycookie=foo+bar; path=/; domain=www.example.com

这是我当前的配置(注意我添加了转义 RewriteMap 以尝试解决我的问题,但它没有做任何事情):

RewriteMap esc int:escape

RewriteRule /blah/(.*) - [co=mycookie:${esc:$1}:www.example.com,L]

我需要的回复是:

Set-Cookie:mycookie=foo%2Bbar; path=/; domain=www.example.com

这可能吗?

【问题讨论】:

    标签: apache url mod-rewrite cookies escaping


    【解决方案1】:

    我是通过 perl 脚本完成的:

    #!/usr/bin/perl
    use URI::Escape;
    $| = 1;
    while (<STDIN>) {
      my $a = $_;
      chomp($a);
      $a = uri_escape($a);
      $a =~ s/%2F/\//g;
      print "$a\n";
    }
    

    这是我的新配置:

    RewriteMap encode-map prg:/var/www/encode.pl
    RewriteRule /blah/(.*) - [co=mycookie:${encode-map:$1}:www.example.com,L]
    

    我可以从RewriteRule, RewriteMap that sets Cookie work badly together借用实现思路

    这就是诀窍。

    【讨论】:

      猜你喜欢
      • 2012-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-08
      • 2020-07-29
      • 2018-11-25
      • 2016-12-16
      • 1970-01-01
      相关资源
      最近更新 更多