我有一个带有nginx的wordpress多站点,我一直在尝试找到一种基于浏览器语言重定向用户的方法。
感谢Mark和Joris我在大多数情况下能够重定向,但我遇到了一个问题。
以下是我的情况和代码供您参考。
代码
location = / {
default_type text/html;
rewrite_by_lua '
if ngx.var.cookie_lang == "ko" then
return
elseif ngx.var.cookie_lang == "ja" then
ngx.redirect("http://jp.domain.com/")
return
elseif ngx.var.cookie_lang == "en" then
ngx.redirect("http://en.domain.com/")
return
end
if ngx.var.http_accept_language then
for lang in (ngx.var.http_accept_language .. ","):gmatch("([^,]*),") do
if string.sub(lang, 0, 2) == "ko" then
ngx.header["Set-Cookie"] = "lang=ko; path=/"
return
elseif string.sub(lang, 0, 2) == "ja" then
ngx.header["Set-Cookie"] = "lang=ja; path=/"
ngx.redirect("http://jp.domain.com/")
return
end
end
end
ngx.header["Set-Cookie"] = "lang=en; path=/"
ngx.redirect("http://en.domain.com/")
';
}
location / {
try_files $uri $uri/ /index.php?$args;
rewrite_by_lua '
if ngx.var.arg_lang == "ko" then
ngx.header["Set-Cookie"] = "lang=ko; path=/"
elseif ngx.var.arg_lang == "ja" then
ngx.header["Set-Cookie"] = "lang=ja; path=/"
elseif ngx.var.arg_lang == "en" then
ngx.header["Set-Cookie"] = "lang=en; path=/"
end
';
}
任何帮助都将不胜感激。