我正在为用户的语言设置Cookie,例如“ lang = en”。我想将root或index.htm请求重写为本地化的index.htm文件。这样,如果用户向“ /”或“ /index.htm”发出请求,并且设置了“ lang = en” cookie,它将重写请求以返回“ index_en.htm”文件。我也希望有一个备用,因此,如果未设置cookie,则可以指定默认的本地化页面并返回它。我该怎么办?
这是我当前的NGINX位置(site_root是一个可变变量):
location / {
root {{ site_root }};
#index /;
try_files $uri $uri/ /;
}
编辑:
解决方案需要重写,而不是重定向,因为我希望用户仍然看到“ example.com/index.htm”或“ example.com”,而不是“ example.com/index_en.htm”。重写还将阻止其他请求。
此外,我想使用cookie的值(例如“ index_ {LANG_VALUE} .htm”)使其动态化,因为如果要添加新的语言,目标是不必编辑此配置文件。
编辑2:
这是一个可行的解决方案,可能会有更好的选择,但这可以满足我的要求。
location / {
root {{ site_root }};
try_files $uri
/index_$cookie_lang.html #localized index if user cookie "lang" is set
/index_en.html #default localized index
/index.html #default index
=404;
}
答案 0 :(得分:0)
类似的事情应该起作用。
annotations:
security.alpha.kubernetes.io/unsafe-sysctls: net.ipv4.ip_local_port_range="10240 65535"