Nginx拒绝文件夹,允许子文件夹

时间:2014-11-17 20:03:02

标签: regex nginx configuration rewrite server

在nginx中,我想拒绝访问特定的目录,不包括特定的目录。这是关于以下设置

拒绝访问: ../ CSS /源/ ... ../ CSS /分钟/ ... ../ JS /源/ ... ../ JS /分钟/...

允许访问: ../ CSS /分钟/包括...... ../ JS /分钟/包括......

对于此设置,我使用以下(工作)配置:

location /assets/themes/default/css/min/include/ {
    allow all;
}

location /assets/themes/default/js/min/include/ {
    allow all;
}

location /assets/themes/default/css/min/ {
    deny all;
}

location /assets/themes/default/js/min/ {
    deny all;
}


location /assets/themes/default/css/source/ {
    deny all;
}

location /assets/themes/default/js/source/ {
    deny all;
}

事实是,我可以想象有一种替代的低代码解决方案。例如,使用正则表达式重写。知道如何改善这个吗?

谢谢!

1 个答案:

答案 0 :(得分:3)

使用正则表达式:

location ~ /assets/themes/default/(css|js)/(min|source)(?!/include) {
    deny all;
}

此后,您的allow all;语句和周围的位置块不再有用。

相关问题