redirect - Varnish 重定向基于浏览器语言设置

标签 redirect varnish http-accept-language

我在 Apache 前使用 Varnish 4。我需要从带有首选语言 es 或 ca(除非它也有 de 或 en)的 header 向 deutsh.de 发出的请求被重定向到 spanish.es。 有人可以为我提供适当的语法吗? 谢谢

最佳答案

所以我设法在用于启动 varnish 的文件中整理了一些东西:

sub vcl_recv {
       if((req.http.Accept-Language !~ "de" || req.http.Accept-Language !~ "en")  && (req.http.Accept-Language ~ "es" ||  req.http.Accept-Language ~ "ca" ||  req.http.Accept-Language ~ "eu"))
         {
        return(synth(301,"Moved Permanently"));
         }
}

sub vcl_synth {
      if(req.http.Accept-Language ~ "es" ||  req.http.Accept-Language ~ "ca" ||  req.http.Accept-Language ~ "eu")
         {
        set resp.http.Location = "http://spanish.es";
        return (deliver);
}
}

...这似乎有效

关于redirect - Varnish 重定向基于浏览器语言设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36160852/

相关文章:

python - 如何使用 Python 获取重定向的 URL

.htaccess - 更改托管域的文档根目录?

php - 正在显示缓存的图像,任何人都可以给我解决方案

varnish - 在数据库记录级别使用 Varnish 缓存

java - 仅支持有限数量的语言

php - Laravel 5.3 LoginController - 标题可能不包含多个标题,检测到新行

c# - 为什么 HTML 数据在 Response.Redirect() 之后发生转换?

apache - 具有自己的IP地址的基于 Varnish ,Apache和名称的虚拟主机

php - 语言重定向适用于桌面但不适用于移动浏览器

java - 在java中为爬虫设置Accept-Language header