首頁 > 軟體

Nginx 禁止直接存取目錄或檔案的操作方法

2022-11-03 14:02:56

前言

Nginx 預設是不允許列出整個目錄的。

如需此功能,開啟 nginx.conf 檔案或你要啟用目錄瀏覽虛擬主機的組態檔,在 location server 或 http 段中加入

autoindex on;

另外兩個引數最好也加上去:

autoindex_exact_size off;

預設為 on,顯示出檔案的確切大小,單位是 bytes。

改為 off 後,顯示出檔案的大概大小,單位是 KB 或者 MB 或者 GB

autoindex_localtime on;

預設為 off ,顯示的檔案時間為 GMT 時間。

改為 on 後,顯示的檔案時間為檔案的伺服器時間。

第一種:autoindex 設定

一級目錄或整個虛擬主機開啟目錄流量

在 nginx.conf 檔案 中 server 段新增

location / {
  autoindex on;
  autoindex_localtime on; #之類的引數寫這裡
}

單獨目錄開啟目錄流量

二級目錄開啟目錄流量

location /down/ {
  autoindex on;
}

虛擬目錄開啟目錄流量

location /down/ {
  alias /home/wwwroot/test/;
  autoindex on;
}

第二種:nginx location 設定

一、禁止存取某些字尾檔案

location ~ .(ini|conf|txt)$ {
    deny all;
}

二、禁止存取目錄或目錄下檔案

#禁止存取目錄
location ^~ /test/ {
    deny all;
}
#禁止存取目錄下檔案
location ^~ /test {
    deny all;
}

三、禁止存取某個目錄下的指定檔案字尾檔案

# 禁止存取某個目錄下的 php 字尾檔案
location /directory {
    location ~ .*.(php)?$ {
    deny all;
    }
}
# 禁止存取多個目錄下的 php 字尾檔案
location ~* ^/(directory1|directory2)/.*.(php)${
    deny all;
}

四、nginx location 匹配相關

  • = 表示精確匹配
  • ^~ 表示 uri 以某個字串開頭
  • ~ 正則匹配(區分大小寫)
  • ~* 正則匹配(不區分大小寫) !和!*分別為區分大小寫不匹配及不區分大小寫不匹配的正則
  • / 任何請求都會匹配
  • 匹配優先順序: = > ^~ > /

五、nginx 設定圖片直接下載不開啟

location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$ {
    add_header Content-Disposition attachment;                   
}

到此這篇關於Nginx 禁止直接存取目錄或檔案的方法的文章就介紹到這了,更多相關nginx 禁止直接存取目錄內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com