1. 程式人生 > >nginx 禁止瀏覽器(www.xxxxx.com.cn/test/)訪問目錄,允許本地去訪問目錄和目錄中檔案

nginx 禁止瀏覽器(www.xxxxx.com.cn/test/)訪問目錄,允許本地去訪問目錄和目錄中檔案

location ^~ /test {

    return 404;

}  

解釋:location ^~ 匹配瀏覽器的域名 區分大小寫

         /test   域名後面跟著的目錄名稱(可以換成別的)

         return 404;也可以把 deny all 改換成 return 404,這樣將返回 404 而不是 403 Forbidden,更有“欺騙性”

^ 和 ~  分別代表什麼意思呢   為什麼他們就代表了url呢?

  基本語法:location [=|~|~*|^~] /uri/ { … }
= 嚴格匹配。如果這個查詢匹配,那麼將停止搜尋並立即處理此請求。
~ 為區分大小寫匹配(可用正則表示式)   區分大小寫匹配
!~為區分大小寫不匹配                           不區分大小寫匹配
~* 為不區分大小寫匹配(可用正則表示式)  區分大小寫不匹配
!~*為不區分大小寫不匹配                          不區分大小寫不匹配
^~ 如果把這個字首用於一個常規字串,那麼告訴nginx 如果路徑匹配那麼不測試正則表示式。

擴充套件:
location ~* \.(txt|doc)$ {
               if (-f $request_filename) {
                  root /home/domain/public_html/test;
                  break;
                  }
               }

location ~* \.bat {

  deny all;

}

tip:對某些特定字尾名禁止訪問
location /phpsysinfo/ {
                        allow  192.168.0.10;
                        deny    all;
                }

tips:對某個目錄進行訪問限制 除了指定ip外 全部拒絕訪問:

location ~ ^/(uploads|images)/.*\.(php|php5|jsp)$ {

     deny all;

}

tips:在目錄uploads、images目錄下面的所有php、jsp都不能訪