【Apache】Indexes 目錄列表

在架完 Apache Server 時,預設找不到 link(連結) 時會列出該連結下所有的目錄。有時列出所有的檔案及目錄是不安全的。像凍仁剛架起來的 web 會顯示下圖這樣的訊息.. 這樣不管放啥東西在上面都會被看光光啦XD

1. 刪除 /etc/apache2/sites-available/default 中的 Indexes 來停用目錄列表之功能
1 NameVirtualHost *
2 <VirtualHost *>
3  ServerAdmin webmaster@localhost
4  DocumentRoot /var/www/
5  <Directory />
6    Options FollowSymLinks
7    AllowOverride None
8  </Directory>
9  <Directory /var/www/>
10    Options Indexes FollowSymLinks MultiViews
11    AllowOverride None
12    Order allow,deny
13    allow from all
14    # This directive allows us to have apache2's default start page
15    # in /apache2-default/, but still have / go to the right place
16    #RedirectMatch ^/$ /apache2-default/
17  </Directory>
18
19  ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
20  <Directory "/usr/lib/cgi-bin">
21    AllowOverride None
22    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
23    Order allow,deny
24    Allow from all
25  </Directory>
26
27  ErrorLog /var/log/apache2/error.log
28
29  # Possible values include: debug, info, notice, warn, error, crit,
30  # alert, emerg.
31  LogLevel warn
32
33  CustomLog /var/log/apache2/access.log combined
34  ServerSignature On
35
36  Alias /doc/ "/usr/share/doc/"
37  <Directory "/usr/share/doc/">
38    Options Indexes MultiViews FollowSymLinks
39    AllowOverride None
40    Order deny,allow
41    Deny from all
42    Allow from 127.0.0.0/255.0.0.0 ::1/128
43  </Directory>
44
45 </VirtualHost>


2. 重新啟動 apache2
jonny@ubuntu:~$ sudo /etc/init.d/apache2 restart


完成後當 address 錯誤時,會顯示無權限開啟的訊息

相關連結:
紅.攝.情.感. Red maple’s note - Apache 如何關閉目錄列表
鳥哥 - httpd.conf 的基本設定

留言

  1. 另一個可行的方法是直接拿掉資料夾對 Other 的讀取權限(r), 但需保留進入權限(x),否則底下網頁會讀不到。這方法會比較適合一些提供個人網頁的主機或者本身沒有該主機管理權限的人用(或者是你怕把 Apache 設定檔搞爛的人...=.=)。

    回覆刪除
  2. 用-Indexes也可以哦

    回覆刪除

張貼留言

喜歡這篇文章嗎?歡迎在底下留言讓凍仁知道。😉

Popular Articles

MySQL 語法匯整