標籤:http ar 使用 sp for on bs html ad
httpd.conf的容器部分配置。
1. <IfModule>容器
<IfModule>容器作用於模組,它會首先判斷模組是否載入,然後再決定是否進行處理,也就是說只有當判斷結果為真是才會執行容器內的指令,相反如果為假,則會全部忽略。可以使用<IfModule 模組名>或<IfModule !模組名>來判斷模組是否載入,例如:
<IfModule !mpm_netware_module>
<IfModule mpm_netware_module>
在第一種情況下,<IfModule>容器會判斷,如果載入了mpm_netware_module模組則不執行容器內的指令。第二種情況下,當mpm_netware_module被載入則執行容器內的指令。如例:
<IfModule dir_module> DirectoryIndex index.html</IfModule>
在這個例子中,<IfModule>容器會判斷dir_module是否載入,如果載入則會執行DirectoryIndex index.html指令。
注意:<IfModule>容器是可以實現嵌套的。
2. <IfDefine>容器
<IfDefine>容器與<IfModule>容器類似,都是對條件進行判斷,只不過<IfDefine>容器只有當條件判斷為真時才會執行,而且它還需要在httpd啟動時加上特定的參數才能起作用。如例:
<IfDefine Proxy> LoadModule proxy_module modules/libproxy.so</IfDefine>
$ sudo httpd -D Proxy
上面的例子中,<IfDefine>容器定義了一個Proxy的參數,然後在httpd啟動時使用-D參數加上Proxy來啟動,這樣在httpd啟動時讀取到了上面的<IfDefine Proxy>容器就會判斷出Proxy的值是真,並執行<IfDefine>容器內的指令。
<IfDefine !Proxy> LoadModule proxy_module modules/libproxy.so</IfDefine>
在這個例子中,<IfDefine !Proxy>容器中的 !Proxy與之前相比多了一個“!”,於是它與之前的例子完全相反,<IfDefine !Proxy>容器內的設定會被忽略掉。
3. <Directory>與<DirectoryMatch>容器
<Directory>容器的作用就是讓它所封裝的指令在指定的目錄以及它的子目錄中起作用,這個目錄必須是一個完整的路徑,當然你也可以使用萬用字元“*”,“?”匹配目錄,也可以使用“[]”來確定字元範圍,不過無論是“*”,“?”,還是“[]”都不能配置“/”,例如,<Directory /srv/*/html/index.html>不能匹配<Directory /srv/*/index.html>,而只能匹配<Directory /srv/apache/html/index.html>或是<Directory /srv/jonsk/html/index.html>。
<Directory /srv/apache/html/ > Order Deny,Allow Deny form All</Directory>
在上面的例子中,禁止了對 /srv/apache/html/ 目錄的存取權限,任何請求到 /srv/apache/html/ 連結都會被拒絕。
註:apache2.2以上的版本,上面的配置方式已經改過了,不是這樣的。
4.
配置apache之httpd.conf(容器部分)