Apache2.4許可權配置(原創帖-轉載請註明出處)
1:這次實驗使用的php專案是Discuz,Discuz的安裝請參照:http://www.cnblogs.com/yichong/p/6038196.html
===================現在開幹===================
在本次實驗中我們使用如下標籤:
<Directory “目錄”> ... </Directory>
<Filesmatch “檔案”> ... </Filesmatch>
<Location “URL”> ... </Location>
第一:<Directory “目錄”></Directory>標籤講解
說明:針對目錄做許可權限制
1:標籤結構
以 <Directory “目錄”> 開頭,中間填充選項引數,以 </Directory> 結尾
2:標籤位置
在 <VirtualHost *:80> 和 </VirtualHost> 標籤中間
3:標籤指令引數詳解
①:Options指令,Options指令後可以附加指定多種伺服器特性,特性選項之間以空格分隔,特性表如下:
All | 表示除MultiViews 之外的所有特性。這也是Options指令的預設設定。 |
None | 表示不啟用任何的伺服器特性。 |
FollowSymLinks | 伺服器允許在此目錄中使用符號連線。如果該配置選項位於<Location> 配置段中,將會被忽略。 |
Indexes |
如果輸入的網址對應伺服器上的一個檔案目錄,而此目錄中又沒有 (例如: 模組生成的一個格式化後的目錄列表。 |
MultiViews |
允許使用 路徑可能對應多種型別的檔案,那麼伺服器將根據客戶端請求的具體情況自動選擇一個最匹 配客戶端要求的檔案。例如,在伺服器站點的
沒有 據使用者請求的具體情況返回最匹配要求的 |
SymLinksIfOwnerMatch |
SymLinksIfOwnerMatch伺服器僅在符號連線與目標檔案或目錄的所有者具有相同的使用者 ID時才使用它。簡而言之,只有當符號連線和符號連線指向的目標檔案或目錄的所有者是同 一使用者時,才會使用符號連線。如果該配置選項位於 |
ExecCGI | 允許使用mod_cgi 模組執行CGI指令碼。 |
Includes | 允許使用mod_include 模組提供的伺服器端包含功能。 |
IncludesNOEXEC |
允許伺服器端包含,但禁用"#exec cmd"和"#exec cgi"。但仍可以從 使用"#include virtual"虛擬CGI指令碼。 |
②:AllowOverride指令,該指令用於指定是否使用.htaccess檔案,引數有如下表:
All | 開啟.htaccess檔案 |
None | 關閉.htaccess檔案 |
③:Require指令,該指令用於指定允許、拒絕列表,在Apache2.2用的是下面這種
Order Deny,Allow Deny All
Allow Form 10.3.33.3
而在Apache2.4用的是 Require all granted 和 Require all denied這種方式,具體如下表:
Require all granted | 允許所有的訪問 |
Require all denied | 拒絕所有訪問 |
Require ip 10.2.2.32 | 允許10.2.2.32這個地址訪問 |
Require not ip 10.3.3.21 | 拒絕10.3.3.21這個地址訪問 |
Reuquire host baidu.com | 允許名為baidu.com的域訪問 |
Reuquire not host baidu.com | 拒絕名為baidu.com的域訪問 |
如果是一條規則,可以直接使用,但是如果有多條規則,則必須把這些規則包含在如下元素當中:
<RequireAll> </RequireAll> | 在此元素中包含的規則,拒絕優先執行 |
<RequireAny> </RequireAny> | 在此元素中包含的規則,允許優先執行 |
舉例1:允許所有訪問,只拒絕192.168.1.103訪問
<RequireAll> Require all granted Require not ip 192.168.1.103 </RequireAll>
舉例2:拒絕所有訪問,只允許192.168.1.103訪問
<RequireAny> Require all denied Require ip 192.168.1.103 </RequireAny>
第二:<FilesMatch “檔案”> </FilesMatch>
說明:針對檔案做許可權限制,和Apache2.2版本的 <Files "檔案"> </Files> 作用一樣,只不過新的這個支援正則表示式。
1:標籤結構
以 <FilesMatch “檔案”> 開頭,中間填充選項引數,以 </FilesMatch> 結尾
2:標籤位置
在 <VirtualHost *:80> 和 </VirtualHost> 標籤中間
3:標籤指令引數詳解:
①:Require指令,該指令用於指定允許、拒絕列表,在Apache2.2用的是下面這種
Order Deny,Allow
Deny All
Allow Form 10.3.33.3
而在Apache2.4用的是 Require all granted 和 Require all denied這種方式,具體如下表:
Require all granted | 允許所有的訪問 |
Require all denied | 拒絕所有訪問 |
Require ip 10.2.2.32 | 允許10.2.2.32這個地址訪問 |
Require not ip 10.3.3.21 | 拒絕10.3.3.21這個地址訪問 |
Reuquire host baidu.com | 允許名為baidu.com的域訪問 |
Reuquire not host baidu.com | 拒絕名為baidu.com的域訪問 |
如果是一條規則,可以直接使用,但是如果有多條規則,則必須把這些規則包含在如下元素當中:
<RequireAll> </RequireAll> | 在此元素中包含的規則,拒絕優先執行 |
<RequireAny> </RequireAny> | 在此元素中包含的規則,允許優先執行 |
舉例1:允許所有訪問,只拒絕192.168.1.103訪問
<RequireAll>
Require all granted
Require not ip 192.168.1.103
</RequireAll>
舉例2:拒絕所有訪問,只允許192.168.1.103訪問
<RequireAny>
Require all denied
Require ip 192.168.1.103
</RequireAny>
第三:<LocationMatch "URL"> </LocationMatch>
說明:針對URL做許可權限制,和Apache2.2版本的 <Location "URL"> </Location> 作用一樣,只不過新的這個支援正則表示式。
1:標籤結構
以 <LocationMatch “檔案”> 開頭,中間填充選項引數,以 </LocationMatch> 結尾
2:標籤位置
在 <VirtualHost *:80> 和 </VirtualHost> 標籤中間
3:標籤指令引數詳解:
①:Require指令,該指令用於指定允許、拒絕列表,在Apache2.2用的是下面這種
Order Deny,Allow Deny All
Allow Form 10.3.33.3
而在Apache2.4用的是 Require all granted 和 Require all denied這種方式,具體如下表:
Require all granted | 允許所有的訪問 |
Require all denied | 拒絕所有訪問 |
Require ip 10.2.2.32 | 允許10.2.2.32這個地址訪問 |
Require not ip 10.3.3.21 | 拒絕10.3.3.21這個地址訪問 |
Reuquire host baidu.com | 允許名為baidu.com的域訪問 |
Reuquire not host baidu.com | 拒絕名為baidu.com的域訪問 |
如果是一條規則,可以直接使用,但是如果有多條規則,則必須把這些規則包含在如下元素當中:
<RequireAll> </RequireAll> | 在此元素中包含的規則,拒絕優先執行 |
<RequireAny> </RequireAny> | 在此元素中包含的規則,允許優先執行 |
舉例1:允許所有訪問,只拒絕192.168.1.103訪問
<RequireAll> Require all granted Require not ip 192.168.1.103 </RequireAll>
舉例2:拒絕所有訪問,只允許192.168.1.103訪問
<RequireAny> Require all denied Require ip 192.168.1.103 </RequireAny>