我們知道apache httpd默認情況下會顯示訪問目錄的文件列表,但是nginx訪問時如果目錄下面沒有默認首頁,那么會返回403 Forbidden的錯誤,表示沒有權限訪問,比如根目錄就是nginx安裝目錄下的html,下面有一個目錄test2,那么默認情況就和如下配置完全等效:
location /test2 { root html; deny all; return 403; }
這個配置就表示請求/test2時返回403,而nginx默認沒有做任何重寫或者其他攔截的時候,訪問指定url會定位到相應的目錄
那么另外應該如何來顯示目錄列表呢,配置很簡單只需要在location中加一行 autoindex on; 即可顯示,這樣默認顯示的文件大小以字節為單位,並且時間和服務器時間相差8小時,所以一般應用中設置根據文件大小進行合適的顯示,並且時間顯示服務器時間,實際配置如下:
location /test2 {
root html;
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
}
以上配置實際顯示效果如下:
現在目錄列表顯示就配置好了,並且這個目錄下的所有目錄都是有訪問權限的,如果不想給權限,那么需要單獨配置剛才的403攔截
另外之前用rewrite映射到本地目錄時默認不訪問具體文件時也是返回403,這個也可以顯示目錄列表,比如目錄/test3,配置如下:
location /test3 { root /; autoindex on; autoindex_exact_size off; autoindex_localtime on; rewrite ^/test3/(.*)$ /test3/$1 break; }
這樣本地目錄映射也可以顯示文件列表了
此文章參考自:http://blog.csdn.net/llnara/article/details/9613089