首页 > 代码库 > nginx alias因为正则出错规则被覆盖问题的解决

nginx alias因为正则出错规则被覆盖问题的解决

在windows平台 为nginx设置一个alias作虚拟目录。但是总是出404错误。

观察error.log,发现实际链接的目录总是原来的root,附上原nginx.conf的一部分.

location ~ .*\.(js|css)?
        {
            root        D:/feeder/web/;
            expires off;
        }


        location /download {
            alias   e:/record/;
            index index.html index.htm;
            expires off;
        }

可以看出,上面为js/css文件的规则的正则表达式并不正确,?号在正则中匹配0个或一个js|css,从而整个表达式匹配的是.号...从而导致其中的root设定覆盖了/download下的alias设定

把location ~ .*\.(js|css)?中的?号前加上转义反斜杠,问题解决。

总结:本身找不出错误的时候,不妨看看问题是不是出在其它的地方。

nginx alias因为正则出错规则被覆盖问题的解决