仅当网址不像"演示/安全"
时才尝试删除Cookie在default.vcl中我有:
sub vcl_fetch {
# error 200 req.url ~ ".*/demo/secured/.*";
if (req.url ~ ".*/demo/secured/.*") {
set beresp.http.x-whaaat = "this is demo securd";
}else {
unset beresp.http.set-cookie;
set beresp.http.x-whaaat = "not demo secured";
}
}
有或没有/ demo / secure的url都会产生" x-whaaat响应标头,而不是演示安全"。但是,对于带有演示/安全的网址,取消注释错误200行会产生错误200,对于没有演示/安全的网址,错误200会错误。
我尝试了if语句的大量和一种变体,但是不能让它返回除false以外的任何内容。
以下是真实的:
if ( "/app_dev.php/demo/secured/login" ~ ".*/demo/secured/.*" )
即使我复制并粘贴了" /app_dev.php/demo/secured/login"从error 200 req.url
的页面输出中,以下内容并非如此:
# error 200 req.url;
if ( req.url ~ ".*/demo/secured/.*" ) {
set beresp.http.x-whaaat = "this is demo securd";
}else {
unset beresp.http.set-cookie;
set beresp.http.x-whaaat = "not demo secured";
}
给了我一个" x-whaat没有演示安全" http://site/app_dev.php/demo/secured/login
上的标题不确定这是怎么可能的,因为相同的网址会给我" /app_dev.php/demo/secured/login"取消注释错误200行时。
varnishd -V
给了我:
varnishd (varnish-3.0.5 revision 1a89b1f)
Copyright (c) 2006 Verdens Gang AS
Copyright (c) 2006-2011 Varnish Software AS
答案 0 :(得分:0)
我在firebug / chrome开发工具中查看了错误的请求。我正在检查的请求是对mysite.com/app_dev.php/_wdt/60c03d的xhr请求,并且没有/ demo / secure,所以确定它有正确的标题。
现在离开电脑一段时间的时间,明天继续。