1. 程式人生 > >apache2.4虛擬目錄

apache2.4虛擬目錄

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