我有这个lua脚本,可以根据用户的浏览器启动情况对其进行重定向。
use RumblWeb, :view
我只想匹配以location = / {
rewrite_by_lua '
for lang in (ngx.var.http_accept_language .. ","):gmatch("([^,]*),") do
if string.sub(lang, 0, 2) == "en" then
ngx.redirect("/en/index.html")
end
if string.sub(lang, 0, 2) == "nl" then
ngx.redirect("/nl/index.html")
end
if string.sub(lang, 0, 2) == "de" then
ngx.redirect("/de/index.html")
end
end
ngx.redirect("/en/index.html")
';
}
结尾的网址
知道如何添加条件吗?
结果应该是这样的:
mysite.org
答案 0 :(得分:0)
在没有您确切输入的全部详细信息的情况下,我认为以下内容应该有效:
location = / {
rewrite_by_lua '
for lang in (ngx.var.http_accept_language .. ","):gmatch("([^,]*),") do
lang = lang:sub(1, 2)
if host:match("mysite%.org$") then
if lang == "en" then ngx.redirect("/en/index.html")
elseif lang == "nl" then ngx.redirect("/nl/index.html")
elseif lang == "de" then ngx.redirect("/de/index.html")
end
end
end
ngx.redirect("/en/index.html")
';
}
还请注意使用elseif
来缩短代码。另一方面,可以省略对“ en”语言的显式检查,因为这是默认的直通情况。