这个问题可能没有任何意义,因为我是清漆新手,但现在是:
我正在构建一个支持多种货币的商务网站,这些网页由清漆提供服务。每当货币发生变化时,它都会根据新货币更改cookie,并且由于请求标题中的cookie发生变化,它是否会创建清漆以创建不同的缓存?如果货币值发生变化以显示正确的产品价格,我需要提供新内容。
如果上面没有刷新清漆,可以通过清漆配置来缓存cookie中不同货币值的不同内容或以某种方式修改页眉吗?
答案 0 :(得分:-2)
首先,抱歉(非常)迟到的答案。希望它能帮到你!
最简单的方法是不缓存主页,并使用PHP或apache或nginx的mod_rewrite重定向主页。
<强> default.vcl 强>
sub vcl_recv {
...
# dont cache the homepage
if (req.url ~ "^/") {
return(pass);
}
...
}
请记住在任何更改后重新启动清漆。
在此处,选择以下选项之一,以重定向。
(假设货币cookie名为“cry”)
<强>的index.php 强>
if (!empty($_COOKIE["cry"]))
{
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.yourdomain.co.uk/?currency=".$_COOKIE["cry"]);
}
(再次,让我们说货币cookie名为“cry”)
网站启用中的yoursite 文件 - nginx
server {
listen 80;
server_name bestsellers.co.uk www.bestsellers.co.uk;
location = / {
if ($cookie_cry ~* "usdollars") {
rewrite ^ http://www.yourdomain.co.uk/?currency=usd permanent;
}
if ($cookie_cry ~* "ilshekels") {
rewrite ^ http://www.yourdomain.co.uk/?currency=ils permanent;
}
if ($cookie_cry ~* "rusruble") {
... and more ...
}
...
}
请记住在任何更改后重新启动nginx。
我真的不知道如何在apache中执行此操作,但谷歌可以帮助您。'
你应该没事。 http://www.yourdomain.com/?currency=usd不是http://www.yourdomain.com/?currency=ils。如果您有任何问题,请在此处发表评论。