nginx 拒绝规则和允许规则不起作用

nginx 拒绝规则和允许规则不起作用

首先我的 nginx.conf 中有这个

server {
    listen 80;

    root /home/user/files;
    index index.php index.html index.htm;

    server_name mydomain.com;

    location / {
        autoindex on;
       }

    #this option will allow auto index on video directory
     location ~ ^/video {
                auth_basic            "Restricted";
                auth_basic_user_file  /etc/nginx/.htpasswd;
                include /etc/nginx/conf.d/php;
                autoindex on;
                autoindex_exact_size on;
}
    #only spesific ip allow to download files in video directory
    location ~ ^/video/* {
               autoindex off;
               allow myip;
               deny all;
       }

}

它似乎允许规则不起作用,当我尝试下载视频文件时仍然遇到 403。

我的conf 有问题吗?

答案1

将它们放在同一个location块中。

location /video/ {
    auth_basic            "Restricted";
    auth_basic_user_file  /etc/nginx/.htpasswd;
    allow myip;
    deny all;
    include /etc/nginx/conf.d/php;
    autoindex on;
    autoindex_exact_size on;
}

我不明白为什么您使用 regexp match ( location ~ regexp) 作为简单前向匹配就足够的路径,并为同一位置混合自动索引开/关。

相关内容