介绍
user_agent是指用户浏览器端的信息。比如你是用IE的还是Firefox浏览器的。有些网站会根据这个来调整打开网站的类型,如是手机的就打开wap,显示非手机的就打开PC常规页面。
配置
- #vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
- <VirtualHost :80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot “/usr/local/apache2.4/docs/www.111.com”
ServerName www.111.com
ServerAlias 111.com
< IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} .curl. [NC,OR]
RewriteCond %{HTTP_USER_AGENT} .baidu.com. [NC]
RewriteRule . - [F]
< /IfModule>
ErrorLog “logs/111.com-error_log”
CustomLog “logs/www.111.com-access_log” combined
< /VirtualHost> - //%{HTTP_USER_AGENT}为user_agent的内置变量,NC代表“不区分大小写”,F代表Forbidden,OR表示“或者”,[F]代表forbidden。
验证过程
- #/usr/local/apache2.4/bin/apachectl -t
Syntax OK - #/usr/local/apache2.4/bin/apachectl graceful
配置验证
- #curl -x127.0.0.1:80 www.111.com/upload/123.php
状态码403
验证成功
- 打开浏览器访问www.111.com/upload/123.php
反向测试
- 修改配置文件
RewriteCond %{HTTP_USER_AGENT} .curl. [NC,OR]
将curl改为Mozilla(浏览器客户端)
RewriteCond %{HTTP_USER_AGENT} .Mozilla. [NC,OR] - #/usr/local/apache2.4/bin/apachectl -t
Syntax OK - #/usr/local/apache2.4/bin/apachectl graceful
- #curl -x127.0.0.1:80 www.111.com/upload/123.php
- 浏览器访问
指定客户端
- 修改配置文件,改回curl
RewriteCond %{HTTP_USER_AGENT} .curl. [NC,OR] - #/usr/local/apache2.4/bin/apachectl -t
Syntax OK - #/usr/local/apache2.4/bin/apachectl graceful
- #curl -A Mozllia -x127.0.0.1:80 www.111.com/upload/123.php
-A参数指定客户端的用户代理标头,即User-Agent