码迷,mamicode.com
首页 > Web开发 > 详细

apache‘禁止指定user_agent’ 和 ‘禁止用户通过浏览器访问某个目录’

时间:2015-07-11 18:46:24      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:浏览器   虚拟主机   配置文件   用户   如何   

禁止指定user_agent

本节介绍如何通过rewrite实现限制指定 user_agent 的请求:

即禁掉不想让那些引擎访问的请求

编辑虚拟主机配置文件

[root@LAMPLINUX ~]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf

(找到“域名301跳转的配置”即“rewrite的mod配置”内写入)

  

   RewriteCond %{HTTP_USER_AGENT} ^.*curl.* [NC,OR]      # [NC]表示不区分大小写

   RewriteCond %{HTTP_USER_AGENT} ^.*chrome* [NC]

   RewriteRule .* - [F]                                                           # 把 curl 和 chrome 访问禁掉

   [root@LAMPLINUX ~]# apachectl -t

   Syntax OK

   [root@LAMPLINUX ~]# apachectl restart

这样就禁止并限定制定浏览器的访问请求,我们通过rewrite实现。


禁止用户通过浏览器访问某个目录

接着上一节,继续编辑虚拟主机配置文件

[root@LAMPLINUX ~]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf

通过rewrite限制访问某个目录,即让目录下的文件不能被用户通过浏览器访问。

(还是在rewrite的mod里,添加之前要把上一节的条件注释掉 “#”,便于测试是否执行成功

RewriteCond %{REQUEST_URI} ^.*/tmp/.* [NC]

RewriteRule .* - [F]

[root@LAMPLINUX ~]# apachectl -t

Syntax OK

[root@LAMPLINUX ~]# apachectl restart

经测试,执行成功,网址方法访问/tmp/目录以及目录下的文件


这一节的两个配置可以总况可以写成以下形式:

<IfModule mod_rewrite.c>

    RewriteEngine on

    RewriteCond %{HTTP_HOST} ^www.lam2.com$

    RewriteRule ^/(.*)$ http://www.lam.com/$1 [R=301,L]


    RewriteCond %{HTTP_USER_AGENT} ^.*curl.* [NC,OR]       # [NC]表示不区分大小写

    RewriteCond %{HTTP_USER_AGENT} ^.*chrome* [NC]

    RewriteRule .* - [F]                                                            # 把 curl 和 chrome 访问禁掉


    RewriteCond %{REQUEST_URI} ^.*/tmp/.* [NC]

    RewriteRule .* - [F]

</IfModule>

蓝色部分是域名301跳转

红色部分是禁止指定user_agent

绿色部分是禁止用户通过浏览器访问某个目录

apache‘禁止指定user_agent’ 和 ‘禁止用户通过浏览器访问某个目录’

标签:浏览器   虚拟主机   配置文件   用户   如何   

原文地址:http://286577399.blog.51cto.com/10467610/1673210

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!