1. 程式人生 > >Linux的Apache應用筆記--配置片段

Linux的Apache應用筆記--配置片段

配置節點容器的型別

有兩種基礎型別的容器,大多數的容器是特定對每個請求的。裡面的指令只作用於與標籤匹配條件的請求。在服務啟動或者重啟的時候,標籤所對應的條件是真的話,就執行裡面的指令,否則不執行。

指令<IFDefine>只有在httpd命令列上定義適當的引數時才會被應用。例如:

<IfDefine ClosedForNow>
    Redirect "/" "http://otherserver.example.com/"
</IfDefine>

#執行指令  httpd -D ClosedForNow

指令<IFModule>,除非伺服器中包含了它指定的模組,裡面的指令才會被應用。這模組必須是在服務中靜態編譯,或者使用LoadModule

指令在配置檔案之前。

<IfModule mod_mime_magic.c>
    MimeMagicFile "conf/magic"
</IfModule>

#只有mod_mime_magic存在,裡面的指令才會被應用

檔案系統,網站和boolean表示式

<Directory><Files>標籤可以巢狀使用:

<Directory "/var/web/dir1">
    <Files "private.html">
        Require all denied
    </Files>
</Directory>

#不允許訪問/var/web/dir1檔案路徑下的所有private.html檔案

<Location>標籤:

<LocationMatch "^/private">
    Require all denied
</LocationMatch>

#以上命令將會阻止帶有/private路徑的訪問
#例如,http://yoursite.example.com/private   http://yoursite.example.com/private123
#和http://yoursite.example.com/private/dir/file.html

 萬用字元和正則表示式:

* 匹配任意的字串   ?匹配任意單個字元  [abcde]匹配括號裡面的任意一個字元                                                                    普通萬用字元匹配:

<Directory "/home/*/public_html">
    Options Indexes
</Directory>

如果需要更靈活的匹配,可以使用正則表示式:                                                                                                                    

<FilesMatch "\.(?i:gif|jpe?g|png)$">
    Require all denied
</FilesMatch>

#可以一次拒絕訪問許多型別的影象檔案

boolean表示式

<If "!(%{HTTP_REFERER} -strmatch 'http://www.example.com/*')">
    Require all denied
</If>