首先看下面的配置:
<VirtualHost *:80> ServerAdmin webmaster@dummy-host.example.com DocumentRoot "D:/xampp/htdocs/wherein" ServerName www.shop_dev.com ErrorLog "logs/wherein.com-error.log" CustomLog "logs/wherein.com-access.log" common <Directory "D:/xampp/htdocs/wherein"> Options FollowSymLinks IncludesNOEXEC Indexes DirectoryIndex index.html index.htm index.php AllowOverride all Order Deny,Allow Allow from all Require all granted </Directory> </VirtualHost>
ServerAdmin指令:
語法: ServerAdmin email-address|URL
用來設置服務器返回給客戶端的錯誤信息中包含的管理員郵件地址。便於用戶在收到錯誤信息后能及時與管理員取得聯系。
ServerName指令:
語法:ServerName [scheme://] FQDN [:port]
用來設置服務器用於辨識自己的主機名和端口號。主要用於創建重定向URL。
DocumentRoot指令:
語法:DocumentRoot directory-path
用來設置httpd提供服務的目錄。即你所在項目入口處的文件夾。
ErrorLog指令:
語法: ErrorLog file-path
來設置當服務器遇到錯誤時記錄錯誤日志的文件。如果file-path不是以/開頭的絕對路徑,那么將會被認為是一個相對於ServerRoot的相對路徑。
CustomLog指令:
語法: ErrorLog file-path common
設置日志文件,並指明日志文件所用的格式(通常通過格式的名字)。
<Directory 目錄路徑>...</Directory>
為主目錄或虛擬目錄設置權限。
特性:
Options FollowSymLinks IncludesNOEXEC Indexes
命 令 | 說 明 |
Indexes | 允許目錄瀏覽 當客戶僅指定要訪問的目錄,但沒有指定要訪問目錄下的哪個文件,而且目錄下不存在默認文檔時,Apache以超文本形式返回目錄中的文件和子目錄列表(虛擬目錄不會出現在目錄列表中) |
MultiViews | 允許內容協商的多重視圖 MultiViews其實是Apache的一個智能特性。當客戶訪問目錄 中一個不存在的對象時,如訪問“http://192.168.66.6/data/a”,則Apache會查找這個目錄下所有a.*文件。由於 data目錄下存在a.gif文件,因此Apache會將a.gif文件返回給客戶,而不是返回出錯信息 |
All | All包含了除MultiViews之外的所有特性,如果沒有Options語句,默認為All |
ExecCGI | 允許在該目錄下執行CGI腳本 |
FollowSymLinks | 可以在該目錄中使用符號連接 |
Includes | 允許服務器端包含功能 |
IncludesNoExec | 允許服務器端包含功能,但禁用執行CGI腳本 |
一旦定義允許目錄瀏覽,就會將Web站點的文件夾和文件名結構暴露給黑客。目錄瀏覽還會允許黑客瀏覽文件並掌握服務器配置信息,所以指定該權限往往帶來安全性上的隱患。除非有充足的理由要使用目錄瀏覽,否則應該禁用它。
DirectoryIndex index.html index.htm index.php
設置訪問目錄后進入的默認文件
AllowOverride all
定義位於每個目錄下.htaccess(訪問控制)文件中的指令類型。none為禁止使用.htaccess文件
Order Deny,Allow
Allow from all
設置缺省的訪問權限與Allow和Deny語句的處理順序
allow, deny:缺省禁止所有客戶機的訪問,且Allow語句在Deny語句之前被匹配。如果某條件既匹配Deny語句又匹配Allow語句,則Deny語句會起作用(因為Deny語句覆蓋了Allow語句)。
deny, allow:缺省允許所有客戶機的訪問,且Deny語句在Allow語句之前被匹配。如果某條件既匹配Deny語句又匹配Allow語句,則Allow語句會起作用(因為Allow語句覆蓋了Deny語句)。
eg.
Order deny ,allow Deny from baidu.com Deny from 192.168.66.6
除了來自baidu.com域和ip地址為192.168.66.6的客戶機外,允許所有客戶機訪問
Order deny ,allow Allow from 192.168.66.6 Deny from 192.168.66.1
既匹配Deny語句又匹配Allow語句,由於allow語句覆蓋了deny語句,所以是允許所有客戶機訪問
Order allow ,deny Allow from 192.168.66.6 Deny from 192.168.66.1
既匹配Deny語句又匹配Allow語句,由於deny語句覆蓋了allow語句,所以是禁止所有客戶機訪問