我安装了清漆,为我的缓存内容提供服务 在我的网站上我有wordpress并添加了规则来剥离传入和传出的cookie,如果它们不属于wp-admin或wp-login
sub vcl_recv {
if (!(req.url ~ "wp-(login|admin)")) {
unset req.http.cookie;
}
}
和
sub vcl_fetch {
if (!(req.url ~ "wp-(login|admin)") {
unset beresp.http.set-cookie;
}
}
现在我在不同的域/子域上添加了一些其他需要启用cookie的网站;我试图添加规则,但没有成功,我解决的唯一方法是没有缓存一些域/子域。
我正在考虑类似的东西(包括recv和fetch),但它不起作用,它也违反了wordpress规则:
sub vcl_fetch {
if (!(req.url ~ "wp-(login|admin)") || !(req.http.host ~ "ingredienti\.popeating\.it")) {
unset beresp.http.set-cookie;
}
}
答案 0 :(得分:0)
如果大多数WP站点或非WP站点,正确的方法可能会有所不同。
鉴于您只有一个WP站点且WP域名为my.wordpress.tld
,您应该将规则更改为:
sub vcl_recv {
if ( req.http.host ~ "my.wordpress.tld"
&& ! (req.url ~ "wp-(login|admin)")
) {
unset req.http.cookie;
}
}
#...
sub vcl_fetch {
if ( req.http.host ~ "my.wordpress.tld"
&& ! (req.url ~ "wp-(login|admin)")
) {
unset beresp.http.set-cookie;
}
}
可以很容易地将2 + WP网站的代码概括为req.http.host ~ "my.wordpress.tld"
替换(req.http.host ~ "my1.wordpress.tld" || req.http.host ~ "my2.wordpress.tld")
或类似my.not-wordpress.tld
的表达式。
鉴于您只有一个NON-WP网站且NON-WP域名为sub vcl_recv {
if ( ! req.http.host ~ "my.not-wordpress.tld"
&& ! (req.url ~ "wp-(login|admin)")
) {
unset req.http.cookie;
}
}
#...
sub vcl_fetch {
if ( ! req.http.host ~ "my.not-wordpress.tld"
&& ! (req.url ~ "wp-(login|admin)")
) {
unset beresp.http.set-cookie;
}
}
,您应该将规则更改为:
req.http.host ~ "my.wordpress.tld"
同样,很容易概括2 + NON-WP网站的代码,将(req.http.host ~ "my1.not-wordpress.tld" || req.http.host ~ "my2.not-wordpress.tld")
替换为vcl_fetch
或类似的表达式。
注意:
vcl_recv
和{{1}}