Apache屏蔽镜像网站域名方法_Apache IIS屏蔽域名访问教程详解
图片和资源被盗链会消耗大量服务器带宽,配置防盗链规则能有效遏制这种情况。Apache和IIS的域名屏蔽规则语法不同,用户在两种服务器环境之间切换时,照搬规则导致不生效或500错误。虚拟主机用户发现有未备案的域名绑定到自己的网站空间,访问这些域名显示的是自己的网站内容,存在合规风险。
排查下来,故障根源集中在几个方面。CDN环境下,源服务器收到的HTTP_HOST是CDN回源域名而不是用户访问的原始域名,导致基于HTTP_HOST的屏蔽规则失效,需要在CDN层面配置或获取真实主机头。屏蔽规则中只匹配了域名本身,没有考虑www和非www两种形式,以及可能的端口号(如example.com:8080),导致部分形式的访问绕过屏蔽。IIS web.config中的域名屏蔽规则放在了
针对上述原因,可以按以下思路逐一排查解决。Apache .htaccess屏蔽指定域名:在网站根目录.htaccess中添加:RewriteEngine On
RewriteCond %{HTTP_HOST} ^bad-domain.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www.bad-domain.com$ [NC]
RewriteRule ^(.*)$ - [F,L],[F]返回403禁止访问,[NC]忽略大小写,[L]停止后续规则。Apache只允许指定域名访问(白名单):RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.example.com$ [NC]
RewriteCond %{HTTP_HOST} !^example.com$ [NC]
RewriteRule ^(.*)$ - [F,L],非白名单域名一律返回403。IIS屏蔽域名301跳转:
从更广泛的运维视角来看,还有一些容易被忽略的诱发因素。配置文件编码格式错误,包含BOM头或非UTF-8编码,导致XML或配置解析失败。多个配置文件中的规则互相冲突,.htaccess和主配置文件或子目录配置同时匹配同一URL。
实际操作中还需要注意以下细节。伪静态规则中避免使用过于宽泛的匹配,防止误拦截正常页面。伪静态规则修改后需要重启IIS或Apache服务,新规则才能生效。测试规则时先在测试环境验证,确认无误后再应用到生产环境。蜘蛛屏蔽通过User-Agent识别,部分蜘蛛会伪造UA,需要结合IP段一起判断。域名屏蔽适用于防止恶意域名绑定到自己的服务器IP,配置后检查正常域名访问是否正常。
除了上述问题,实际运维中还可能遇到以下相关故障。蜘蛛屏蔽后正常搜索引擎也被拦截,检查User-Agent匹配规则是否过于宽泛。IIS web.config规则报错500,检查XML语法是否正确以及URL Rewrite模块是否安装。.htaccess规则不生效,确认Apache配置中AllowOverride是否设置为All。
规则配置的核心在于匹配条件和动作两个要素,把这两项搞清楚就能解决大部分问题。

更新时间:2026-09-01 14:11:18