Nginx 配置忽略文件名大小写

文件从Windows转移到Linux,由于Windows下文件名不区分大小写,但是linux区分,导致,一些大写的文件名url打开报404错误。

解决办法:

1.将文件夹以及文件都改为小写,批量修改命令如下:

# find -exec sh -c 'rm -f "$0" `echo "$0" | tr "[A-Z]" "[a-z]"` > /dev/null 2>&1' {} \;

2.使用Lua模块实现大小写转化

Lua安装请参考 http://www.123admin.com/how-to-install-lua-nginx-module-on-nginx/

3.Nginx配置规则如下:

location / {
    if ($uri ~ [A-Z]){
        rewrite_by_lua 'return ngx.redirect(string.lower(ngx.var.uri),ngx.HTTP_MOVED_PERMANENTLY)';
    }
}