首页 > 代码库 > Apache 2.4 访问控制;

Apache 2.4 访问控制;

2.2当中的访问控制:

AllowOveried    None    //是否禁用控制功能;

Order

Allow Deny    //不允许的都拒绝,Deny Allow表示不拒绝都允许;

Allow

IPADDR    //允许的IP列表;

Deny

IPADDR    //拒绝的IP列表;


PS:列表的IP可以使用IP段或者IP地址;


Apache 2.4访问控制:

通过<RequireAll></RequireAll>来进行控制,一下给出示例;


<Dricetory /var/www/html>

    <RequireAll>

        Require all granted    //允许所有访问;

        Require all denied    //拒绝所有访问;

        Require ip IPADDR    //允许IP列表;

        Require not ip IPADDR    //拒绝IP列表;

        Require host HostName    //允许各别HostName访问;

    </RequireAll>


以下是转自网络http://www.cnblogs.com/leoyu/p/apache24_use_require_for_access_control_by_ip_and_useragent.html;


例6:允许所有访问请求,但拒绝某些User-Agent的访问请求(通过User-Agent屏蔽垃圾网络爬虫)

使用mod_setenvif通过正则表达式匹配来访请求的User-Agent,并设置内部环境变量BADBOT,最后拒绝BADBOT的访问请求。

Apache2.4下的配置:

<Directory xxx/www/yoursite>
 
    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>
 </Directory>

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

Apache 2.4 访问控制;