<Directory 目錄名></Directory> 定義一個目錄
Options:目錄中將使用哪些服務器特性
None //不啟用任何額外特性 All //啟用除MultiViews之外的所有特性(默認設置) Indexes //當用戶訪問該目錄時,找不到index文件,則返回該目錄下的文件列表給用戶 FollowSymLinks //可以在該目錄中使用符號連接,這樣就訪問目錄之外的文檔 MultiViews //允許內容協商的多重視圖 Includes //允許服務器端包含 IncludesNOEXEC //允許服務器端包含,但禁用#exec命令和#exec CGI ExecCGI //允許執行CGI腳本
另外:
+ 號表示合並上層目錄的Options和當前目錄的Options
- 號表示移除上層目錄的Options選項
<Directory /> Options Indexes FollowSymLinks </Directory> <Directory /www> Options Includes //當前目錄只有Includes </Directory>
<Directory /> Options Indexes FollowSymLinks </Directory> <Directory /www> Options +Includes -Indexes //當前目錄有FollowSymLinks和Includes </Directory>
AllowOverride
None //禁止搜索該目錄下的.htaccess文件。
All //允許使用該目錄下的.htaccess文件。
由於Apache對一個目錄的訪問控制設置是能夠被下一級目錄繼承的,
因此對根目錄的設置將影響到它的下級目錄,
如果從根目錄就允許查看.htaccess文件,
那么Apache就必須一級一級的查看.htaccess文件,對系統性能會造成影響,
因此對於系統根目錄設置AllowOverride None不但對於系統安全有幫助,也有益於系統性能。
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
目錄訪問控制
Apache2.2 使用order和allow,deny
Order Allow,Deny //order決定最后使用哪一條規則 Allow from all Deny from ip1 ip2 //deny是最后一條,符合ip1和ip2的訪問會被禁止
Order Deny,Allow //最后一條是allow,所以第三條deny不會生效 Allow from all Deny from domain.org
Order Allow,Deny Allow from ip1 Deny from all //deny是最后一條,all包含ip1,所以所有訪問都會禁止
Apache2.4 使用require
Require all granted //允許所有訪問 Require all denied //拒絕所有訪問 Require local //僅允許本地訪問(默認) Require all granted Require ip 192.168.0.1 //僅允許IP:192.168.0.1 訪問 Require all granted Require not ip 192.168.0.1 //僅禁止IP:192.168.0.1訪問