Nginx 阻止访问某些文件类型(如 .txt)

Nginx 阻止访问某些文件类型(如 .txt)

我的目标:阻止任何请求以下文件类型的请求:

{random name{.txt
.md
.git

如果用户尝试访问任何“被阻止”的文件类型,我希望返回 HTTP 404。这应该发生在全部文件夹,而不仅仅是根文件夹

到目前为止我的服务器代码

server {
        listen 80 default_server;
        listen [::]:80 default_server;
        root /forum;
        index index.php;
        server_name forum.example.net;
        location / {
                try_files $uri $uri/ =404;
        }
        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
        }
        location ~ /\.ht {
                deny all;
        }
        location ~ \.md {
        deny all;
        return 404;
        }
        location ~ /\.txt {
        deny all;
        return 404;
        }
        location ~ /\.git {
        deny all;
        return 404;
        }
}

当我尝试访问以下网址时:/folder/test.md

它正在下载,并且没有发送“全部拒绝”,而我想阻止它

我怎样才能做到这一点?

答案1

阻止文件类型:

.md
.git
{anything}.txt

添加到服务器块:

location ~\.(git|txt|md)$ {
 deny all;
 return 404;
}

如果用户访问 /folder/1.txt,1.txt 将返回 HTTP 404

相关内容