apache2.4虛擬目錄
阿新 • • 發佈:2019-01-29
1、設定根目錄
搜尋DocumentRoot,設定根目錄。
DocumentRoot "${SRVROOT}/htdocs/thinkphp/public"
2、設定虛擬目錄
搜尋<IfModule alias_module>
模組,在</IfModule>
前新增:
Alias /my "${SRVROOT}/htdocs/phpMyAdmin"
解釋:
/my
設定虛擬目錄名稱,
"${SRVROOT}/htdocs/phpMyAdmin"
設定虛擬目錄實體地址。
3、設定虛擬目錄許可權
新增完虛擬目錄後,在後新增下面的內容:
<Directory "${SRVROOT}/htdocs/phpMyAdmin">
# 設定訪問許可權
<RequireAll>
Require all granted
</RequireAll>
</Directory>
每個虛擬目錄一個。
從Apache2.2升級到Apache2.4後,發現原來用來限制部分IP和垃圾網路爬蟲的訪問控制規則不起作用,查詢後才發現,Apache2.4中開始使用mod_authz_host這個新的模組來進行訪問控制和其他的授權檢查。原來在Apache2.2版本下用以實現網站訪問控制的Order,Allow,Deny指令需要替換為新的Require訪問控制指令。
注意:使用require指令時,需要在指令外新增標籤對,否則重啟Apache2.4載入規則時將出現錯誤:” negative Require directive has no effect in directive “。
下面直接給出一些例項對Require指令的使用進行說明:
允許所有訪問請求:
<RequireAll>
Require all granted
</RequireAll>
拒絕所有訪問請求:
<RequireAll>
Require all denied
</RequireAll>
只允許來自特定域名主機的訪問請求,其他請求將被拒絕
<RequireAll>
Require ip 192.120 192.168.100 192.168.1.1
</RequireAll>
允許所有訪問請求,但拒絕來自特定IP或IP段的訪問請求
<RequireAll>
Require all granted
Require not ip 192.168.1.1
Require not ip 192.120 192.168.100
</RequireAll>
允許所有訪問請求,但拒絕某些User-Agent的訪問請求
SetEnvIfNoCase User-Agent "(FeedDemon|JikeSpider|AskTbFXTV|CrawlDaddy|Feedly|Swiftbot|ZmEu|oBot).*" BADBOT
SetEnvIfNoCase User-Agent "brandwatch" BADBOT
SetEnvIfNoCase User-Agent "rogerbot" BADBOT
<RequireAll>
Require all granted
Require not env BADBOT
Require not ip 192.168.100.1
</RequireAll>
其它require訪問控制指令用法如下:
Require all granted #允許所有
Require all denied #拒絕所有
Require env env-var [env-var] ... #允許匹配環境變數中任意一個
Require method http-method [http-method] ... #允許特定的HTTP方法(GET/POST/HEAD/OPTIONS)
Require expr expression #允許,表示式為true
Require user userid [ userid ] ... #允許特定使用者
Require group group-name [group-name] ... #允許特定使用者組
Require valid-user # #允許,有效使用者
Require ip 192.100 192.168.100 192.168.100.5 #允許特定IP或IP段,多個IP或IP段間使用空格分隔
–END