Linux的Apache應用筆記--配置片段
阿新 • • 發佈:2018-12-12
配置節點容器的型別
有兩種基礎型別的容器,大多數的容器是特定對每個請求的。裡面的指令只作用於與標籤匹配條件的請求。在服務啟動或者重啟的時候,標籤所對應的條件是真的話,就執行裡面的指令,否則不執行。
指令<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>