【问题标题】:Why nginx redirect zh_cn to zh_cn/?为什么 nginx 将 zh_cn 重定向到 zh_cn/?
【发布时间】:2015-08-10 19:28:04
【问题描述】:

我像下面这样编写nginx配置文件,当我输入urlhttp://xxx/zh_cn时,它会重定向到http://xxx/zh_cn/,但是如果我删除“if (-d $request_filename){}”,nginx不会重定向路径,为什么?

location = / {
    if ($http_accept_language ~* ^zh-cn) {
        set $lang zh_cn;
        rewrite ^/$ /$lang/index.html redirect;
    }
}

location / {
   if (-d $request_filename){}
   try_files $uri $uri/index.html $uri.html /abc/$uri;
}

我知道代码“rewrite ^/(.*)([^/])$ http://$host/$1$2/ Permanent”可以重定向路径,但为什么只是“if (-d $request_filename) {}" 也可以吗?

【问题讨论】:

    标签: redirect nginx


    【解决方案1】:

    来自If is evil 的第三个示例。

    在这种情况下,您的try_files 将被忽略,并且 nginx 的默认行为是在看到与目录匹配的不带斜线的请求时重定向到带斜线的 URL。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-19
      • 2017-02-06
      • 1970-01-01
      • 1970-01-01
      • 2016-01-15
      • 2016-08-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多