1. 程式人生 > >Apache2.4許可權配置(原創帖-轉載請註明出處)

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

如果輸入的網址對應伺服器上的一個檔案目錄,而此目錄中又沒有DirectoryIndex指令

(例如:DirectoryIndex index.html index.php),那麼伺服器會返回由mod_autoindex

模組生成的一個格式化後的目錄列表。

MultiViews

允許使用mod_negotiation模組提供內容協商的"多重檢視"。簡而言之,如果客戶端請求的

路徑可能對應多種型別的檔案,那麼伺服器將根據客戶端請求的具體情況自動選擇一個最匹

配客戶端要求的檔案。例如,在伺服器站點的file資料夾下中存在名為hello.jpghello.

html的兩個檔案,此時使用者輸入Http://localhost/file/hello,如果在file資料夾下並

沒有hello子目錄,那麼伺服器將會嘗試在file資料夾下查詢形如hello.*的檔案,然後根

據使用者請求的具體情況返回最匹配要求的hello.jpg或者hello.html

SymLinksIfOwnerMatch

SymLinksIfOwnerMatch伺服器僅在符號連線與目標檔案或目錄的所有者具有相同的使用者

ID時才使用它。簡而言之,只有當符號連線和符號連線指向的目標檔案或目錄的所有者是同

一使用者時,才會使用符號連線。如果該配置選項位於<Location>配置段中,將會被忽略。

ExecCGI 允許使用mod_cgi模組執行CGI指令碼。
Includes 允許使用mod_include模組提供的伺服器端包含功能。
IncludesNOEXEC

允許伺服器端包含,但禁用"#exec cmd"和"#exec cgi"。但仍可以從ScriptAlias目錄

使用"#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>