Apache2.4使用require指令進行訪問控制--允許或限制IP訪問/通過User-Agent禁止不友好網絡爬蟲


從Apache2.2.X到Apache2.4.X,在配置上稍微有點不同,需要特別注意。現在記錄下關於訪問控制的配置。

經過苦苦搜索,終於配置成功。參考了這篇文章:http://www.cnblogs.com/leoyu/p/apache24_use_require_for_access_control_by_ip_and_useragent.html

關於Location配置的靈感,是從這篇文章看到的:http://www.bubuko.com/infodetail-336400.html

上文雖然有點亂,但是有個片段提醒到我:

#禁止所有非法域名
<VirtualHost *:80>
    ServerName 服務器ip
    ServerAlias *
    <Location />
        Order Allow,Deny
        Deny from all
    </Location>
</VirtualHost>
211.147.235.10這個IP太討厭了,使用"WhatsUp_Gold/7.0"來掃我的網站。所以決定屏蔽掉。

在需要進行訪問控制的地方,比如VirtualHost或者Directory,加入Location元素

    <Location / > 
        SetEnvIfNoCase User-Agent ".*(FeedDemon|JikeSpider|AskTbFXTV|CrawlDaddy|Feedly|Swiftbot|ZmEu|oBot|WhatsUp).*" BADBOT    
        SetEnvIfNoCase User-Agent "brandwatch" BADBOT
        SetEnvIfNoCase User-Agent "rogerbot" BADBOT
        <RequireAll>
         Require all  granted
         Require not env BADBOT
         Require not ip 211.147.235.10
        </RequireAll>
    </Location>

其它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段間使用空格分隔

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM