Apache 中 RewriteCond 怎么检测 User-Agent 屏蔽恶意爬虫或特定浏览器

轻敏姑娘_5775

轻敏姑娘_5775

2026-08-30

676人浏览

原创

直接用rewritecond匹配user-agent字符串或正则,配合[nc]忽略大小写,再用rewriterule返回403或跳转;关键在写准条件、转义特殊字符、正确使用逻辑连接符。

apache 中 rewritecond 怎么检测 user-agent 屏蔽恶意爬虫或特定浏览器

直接用 RewriteCond %{HTTP_USER_AGENT} 匹配字符串或正则,配合 [NC] 忽略大小写,再用 RewriteRule 返回 403 或跳转即可。关键在写准条件、转义特殊字符、逻辑连接符别用错。

基础写法:匹配空 UA 或常见恶意爬虫

这是最常用也最安全的起点,误伤率极低:

  • 屏蔽空 User-Agent(脚本、低级扫描器常用):
    RewriteCond %{HTTP_USER_AGENT} ^$ [NC]<br>RewriteRule ^ - [F]
  • 屏蔽一批已知垃圾 UA(用竖线 | 表示“或”,注意转义点号和括号):
    RewriteCond %{HTTP_USER_AGENT} "(FeedDemon|AhrefsBot|MJ12bot|ZmEu|Python-urllib|HttpClient|Wfuzz|Fuzz|buster)" [NC]<br>RewriteRule ^ - [F]

进阶技巧:精准识别与避免误判

单纯靠 UA 字符串容易误拦正常用户,加一层判断更稳妥:

Image Generation Agent
Image Generation Agent

图像生成代理:由Google Gemini驱动的图像生成工具(Nano Banana / Gemini 2.5 & 3 Flash Image)。用于根据文本提示生成图像。

下载
  • 用 ! 否定条件,比如只对 iOS 且非微信环境生效:
    RewriteCond %{HTTP_USER_AGENT} "iPhone|iPad" [NC]<br>RewriteCond %{HTTP_USER_AGENT} !MicroMessenger [NC]<br>RewriteRule ^$ /pwa-home.html [L]
  • 多个 UA 条件要用 [OR] 显式声明“或”,否则默认是“且”:
    RewriteCond %{HTTP_USER_AGENT} "MSIE [6-9]" [NC,OR]<br>RewriteCond %{HTTP_USER_AGENT} "Trident.*rv:11" [NC]<br>RewriteRule ^ /ie-unsupported.html [R=302,L]
  • 匹配 Chrome 但排除安卓版(防误伤移动 Chrome):
    RewriteCond %{HTTP_USER_AGENT} "Chrome" [NC]<br>RewriteCond %{HTTP_USER_AGENT} !Android [NC]<br>RewriteRule ^ /desktop-only.php [L]

实用建议:部署前必须检查的点

规则写得再好,配置不当也会失效或报错:

  • 确保 mod_rewrite 已启用:
    Debian/Ubuntu 执行 sudo a2enmod rewrite;RHEL/CentOS 检查 httpd.conf 中 LoadModule rewrite_module 是否启用
  • .htaccess 生效需目录允许重写:
    对应 <directory></directory> 块中要有 AllowOverride All 或至少 AllowOverride FileInfo
  • 所有 RewriteRule 后建议加 [L] 终止,防止后续规则干扰;返回禁止用 [F],跳转明确写 [R=302,L] 或 [R=301,L]
  • 正则里点号 .、星号 *、括号 ()、竖线 | 都要加反斜杠转义,除非你真需要它们的正则含义

替代方案:用 SetEnvIf 更轻量(适合简单子串匹配)

如果只是黑名单关键词、不涉及复杂正则,SetEnvIf 更简洁稳定,不易因正则错误导致 500:

  • SetEnvIfNoCase User-Agent "(FeedDemon|AhrefsBot|ZmEu)" BADBOT<br>Order Allow,Deny<br>Allow from all<br>Deny from env=BADBOT
  • 它不依赖 mod_rewrite,语法更接近字符串匹配,适合批量屏蔽场景

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

apache 浏览器 爬虫 agent

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

437

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

900

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

2772

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

936

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

829

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

434

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

2516

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

4652

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

747

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Apache Maven 官方安装指南
Apache Maven 官方安装指南

共0课时 | 0人学习

Apache Maven 官方用户中心
Apache Maven 官方用户中心

共0课时 | 0人学习

Apache Subversion 官方手册
Apache Subversion 官方手册

共0课时 | 0人学习