根据Cookie提供其他索引页

时间:2018-07-24 22:31:59

标签: nginx

我正在为用户的语言设置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;
    }

1 个答案:

答案 0 :(得分:0)

类似的事情应该起作用。

annotations:
  security.alpha.kubernetes.io/unsafe-sysctls: net.ipv4.ip_local_port_range="10240 65535"