ASP.NET Web.config 屏蔽蜘蛛或某UA的写法
作者:admin 时间:2022-9-2 15:56:23 浏览:前面几篇文章介绍过 ASP.NET Web.config 通过URL重写能够实现很多非常实用的功能,如屏蔽IP地址、屏蔽来源域名等,本文将给大家介绍 ASP.NET Web.config 屏蔽蜘蛛或某UA的写法。
实现方法
因为要用到URL重写功能,因此要首先安装URL重写模块,安装教程请看《IIS7.5 安装url rewrite重写模块【 附下载地址】》。
示例代码
Web.config 添加URL重写规则,屏蔽蜘蛛或某UA。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="rule1" stopProcessing="true">
<match url="^(.*)$" />
<conditions logicalGrouping="MatchAny">
<add input="{HTTP_USER_AGENT}" pattern="baiduspider|googlebot" />
</conditions>
<action type="CustomResponse" statusCode="403" statusReason="Forbidden" statusDescription="Forbidden" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
解释
本示例代码,是屏蔽百度和Google蜘蛛的爬虫。
其原理是根据访客的UA,即<add>
节点里的input
值:{HTTP_USER_AGENT}
,如果匹配模式pattern,就执行<action>
的动作,这里是返回403 - 拒绝访问的状态。
如果你有多个UA要屏蔽,那么只需在上面的示例代码里,修改下pattern的值即可,把你要屏蔽的UA关键词加上去,每个UA之间用“|
”隔开。
设置后,被拒绝IP访问网站时就返回 403 - 禁止访问:访问被拒绝 的提示。
总结
本文介绍了ASP.NET Web.config 屏蔽蜘蛛或某UA的写法,你还可以通过 Web.config 屏蔽IP(段)。
要屏蔽蜘蛛你还可以参考此文:
知识扩充 - URL重写语法及参数
URL重写语法及参数主要有如下这些,我们可以根据需要灵活运用。
参数
#忽略大小写
ignoreCase="true"|ignoreCase="false"
#非(不等于)
negate="true"
#不带?后面的参数
appendQueryString="false"
#永久重定向
redirectType="Permanent"
#匹配条件为所有还是一条
logicalGrouping="MatchAll"|logicalGrouping="MatchAny" # 用于conditions节点
<add>条件
<add>
条件判断,就像我们程序中的if
语句一样,表示如果符合某个或某几个条件则执行action
后的语句。
#判断访问域名
<add input="{HTTP_HOST}" pattern="^www.xxx.com$" />
#判断user_agent
<add input="{HTTP_USER_AGENT}" pattern="baiduspider|googlebot" />
#判断访问来源域名
<add input="{HTTP_REFERER}" pattern="xxx.com" negate="true" />
#判断url中
<add input="{URL}" pattern="^.*(.css|.js|.gif|.png|.jpg|.jpeg|.xml)" ignoreCase="false" />
#判断url中?后参数
<add input="{QUERY_STRING}" pattern="blog" negate="true" />
#判断url路径地址
<add input="{REQUEST_URI}" pattern="blog" negate="true" />
#判断ip(包括代理)
<add input="{REMOTE_ADDR}" pattern="(8.8.4.4|8.8.8.)" />
#判断真实文件
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" pattern="" ignoreCase="false" />
#判断真实目录
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" pattern="" ignoreCase="false" />
#判断match中的变量
<add input="{R:1}" pattern="^(bbs|blog)" ignoreCase="false" negate="true" />
#其他
<add input="%" pattern="^$" ignoreCase="false" negate="true" />
<action>处理方式
<action>
是执行动作,即满足条件后如何处理。
#禁止访问
<action type="AbortRequest" />
#重定向到
<action type="Redirect" url="http://www.xxx.com" redirectType="Permanent" />
#重写到
<action type="Rewrite" url="{R:1}/t_list.asp?teacher_id={R:2}" appendQueryString="false" />
#不做操作
<action type="None" />
#向客户端返回状态
<action type="CustomResponse" statusCode="403" statusReason="Forbidden" statusDescription="Forbidden" />
相关文章
标签: Web_config url重写
- 站长推荐