從Apache2.2.X到Apache2.4.X,在配置上稍微有點不一樣,須要特別注意。如今記錄下關於訪問控制的配置。html
通過苦苦搜索,終於配置成功。參考了這篇文章:http://www.cnblogs.com/leoyu/p/apache24_use_require_for_access_control_by_ip_and_useragent.htmlexpress
關於Location配置的靈感,是從這篇文章看到的:http://www.bubuko.com/infodetail-336400.htmlapache
上文雖然有點亂,可是有個片斷提醒到我:服務器
#禁止全部非法域名 <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元素ide
<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段間使用空格分隔