Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache 对具有RewriteRule的cookie值使用RewriteMap_Apache_Url_Mod Rewrite_Cookies_Escaping - Fatal编程技术网

Apache 对具有RewriteRule的cookie值使用RewriteMap

Apache 对具有RewriteRule的cookie值使用RewriteMap,apache,url,mod-rewrite,cookies,escaping,Apache,Url,Mod Rewrite,Cookies,Escaping,我试图转义一个由重写规则设置的cookie值 例如,假设我的站点是 我需要将URL的一部分作为cookie发送回去 在本例中,我可以看到Apache正在取消对url的替换 从浏览器返回的是: 设置Cookie:mycokie=foo+bar;路径=/;domain=www.example.com 这是我当前的配置(注意,我添加了escape RewriteMap以尝试解决我的问题,但它没有任何作用): 我需要从回复中得到的是: 设置Cookie:mycokie=foo%2Bbar;路径=/;do

我试图转义一个由重写规则设置的cookie值

例如,假设我的站点是

我需要将URL的一部分作为cookie发送回去

在本例中,我可以看到Apache正在取消对url的替换

从浏览器返回的是:

设置Cookie:mycokie=foo+bar;路径=/;domain=www.example.com

这是我当前的配置(注意,我添加了escape RewriteMap以尝试解决我的问题,但它没有任何作用):

我需要从回复中得到的是:

设置Cookie:mycokie=foo%2Bbar;路径=/;domain=www.example.com


这可能吗?

我已经通过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";
}
我能够从以下方面借用实施理念:

这就成功了

#!/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]