我的知识记录

IIS域名白名单规则配置方法_Apache IIS屏蔽域名访问教程详解

网站运维中,URL重写和访问控制是两个高频操作场景。虚拟主机用户发现有未备案的域名绑定到自己的网站空间,访问这些域名显示的是自己的网站内容,存在合规风险。配置了域名屏蔽规则后,正常域名也无法访问,或者屏蔽的域名仍然能访问,规则没有达到预期效果。

出现这类问题,通常跟以下几个因素有关。IIS的默认网站(Default Web Site)绑定了所有未分配的IP和端口,任何解析到该服务器IP但未在IIS中绑定的域名都会访问到默认网站,如果默认网站目录是正常网站内容,恶意域名就能访问。CDN环境下,源服务器收到的HTTP_HOST是CDN回源域名而不是用户访问的原始域名,导致基于HTTP_HOST的屏蔽规则失效,需要在CDN层面配置或获取真实主机头。屏蔽规则中只匹配了域名本身,没有考虑www和非www两种形式,以及可能的端口号(如example.com:8080),导致部分形式的访问绕过屏蔽。Apache的VirtualHost配置中,第一个VirtualHost会成为默认站点,所有未在配置中绑定的域名都会匹配到默认站点,如果默认站点指向了正常网站目录,恶意域名就能访问网站内容。IIS web.config中的域名屏蔽规则放在了节点外,或条件判断中使用了错误的服务器变量(如用了{HOST}而不是{HTTP_HOST}),导致规则不生效。.htaccess中的域名屏蔽规则使用了%{HTTP_HOST}变量,但正则表达式没有正确匹配域名(如缺少^和$锚点,或没有转义点号),导致规则匹配不准确,要么误杀正常域名要么漏过恶意域名。

结合实际运维经验,整理出以下解决方案。虚拟主机用户:通过空间商控制面板的"域名绑定"功能,只绑定自己的域名,未绑定的域名默认无法访问;或上传.htaccess/web.config配置屏蔽规则,部分空间商支持在线文件管理器编辑配置文件。IIS默认网站配置:在IIS管理器中停止默认网站,或修改默认网站的物理路径为一个空目录,同时在正常网站的绑定中只绑定自己的域名,不绑定IP或留空主机名。Apache屏蔽域名301到主域名:RewriteEngine On RewriteCond %{HTTP_HOST} ^bad-domain.com$ [NC,OR] RewriteCond %{HTTP_HOST} ^www.bad-domain.com$ [NC] RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L],将恶意域名的访问301重定向到自己的主域名。Apache只允许指定域名访问(白名单):RewriteEngine On RewriteCond %{HTTP_HOST} !^www.example.com$ [NC] RewriteCond %{HTTP_HOST} !^example.com$ [NC] RewriteRule ^(.*)$ - [F,L],非白名单域名一律返回403。Apache默认站点配置:在httpd.conf中创建一个默认VirtualHost,放在所有VirtualHost之前,DocumentRoot指向一个空目录或提示页面, ServerName default DocumentRoot /var/www/default Require all granted ,所有未绑定的域名都访问默认站点而非正常网站。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]停止后续规则。

从更广泛的运维视角来看,还有一些容易被忽略的诱发因素。DNS解析未生效,域名仍指向旧服务器IP,规则修改在新服务器但用户访问的是旧服务器。服务器负载过高,Web服务进程响应超时,规则匹配结果无法正常返回。

实际操作中还需要注意以下细节。正则表达式中的特殊字符需要转义,如点号要写成.,否则会匹配任意字符。Apache的.htaccess文件需要服务器开启AllowOverride All才能生效。伪静态规则中避免使用过于宽泛的匹配,防止误拦截正常页面。IP屏蔽规则建议使用CIDR格式,既能精准屏蔽又不会误封正常用户。

除了上述问题,实际运维中还可能遇到以下相关故障。伪静态规则中中文URL乱码,需要在规则中添加NE(no escape)标志或配置编码。.htaccess规则不生效,确认Apache配置中AllowOverride是否设置为All。域名屏蔽后所有域名都无法访问,检查规则中的条件判断是否写反了。

规则配置的核心在于匹配条件和动作两个要素,把这两项搞清楚就能解决大部分问题。

IIS域名白名单规则配置方法_Apache IIS屏蔽域名访问教程详解

标签:

更新时间:2026-09-01 16:13:49

上一篇:修改图片创建时间修改时间日期如何操作?旅行照片整理场景BMP照片EXIF时间戳调整

下一篇:西部数码虚拟主机单页面 301返回301_Apache .htaccess与IIS web.config对照