32ewdq 发表于 2015-12-4 10:05:03

Apache禁止指定的user_agent、指定目录被访问

一、Apache禁止指定的user_agent
1、修改apache的虚拟主机配置文件
# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
    <IfModule mod_rewrite.c>
       RewriteEngine on
       RewriteCond %{HTTP_HOST} ^www.daixuan.com$
       RewriteCond %{HTTP_HOST} ^www.123.com$
       RewriteRule ^/(.*)$ http://www.test.com/$1
       RewriteCond %{HTTP_USER_AGENT} ^.*curl*    定义条件,NC不区分大小写
       RewriteCond %{HTTP_USER_AGENT} ^.*chrome*     定义或者chrome访问条件
       RewriteRule .* -                      规则是禁用,Forbidden
   </IfModule>
</VirtualHost>
2、测试结果:chrome不能打开www.test.com;Firefox可以打开www.test.com
# curl -I www.test.com   curl访问也被禁止了
HTTP/1.1 403 Forbidden

二、通过Rewrite限制访问目录
1、正常可以访问
在防盗链中取消.txt文件被盗用,在/data/www/tmp/12.txt中输入123456
浏览器可以正常打开:http://www.test.com/tmp/12.txt    123456

2、修改配置文件
#vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
    <IfModule mod_rewrite.c>
       RewriteEngine on
       RewriteCond %{HTTP_HOST} ^www.daixuan.com$
       RewriteCond %{HTTP_HOST} ^www.123.com$
       RewriteRule ^/(.*)$ http://www.test.com/$1
#       RewriteCond %{HTTP_USER_AGENT} ^.*curl*
#       RewriteCond %{HTTP_USER_AGENT} ^.*chrome*
#       RewriteRule .* -

       RewriteCond %{REQUEST_URI} ^.*/tmp/.*    条件是包含‘/tmp/’目录的文件
       RewriteRule .* -                   拒绝访问
   </IfModule>
</VirtualHost>

3、测试
Firefox浏览器打开:http://www.test.com/tmp/12.txt ,特定目录访问限制成功。
ForbiddenYou don't have permission to access /tmp/12.txton this server.




页: [1]
查看完整版本: Apache禁止指定的user_agent、指定目录被访问