配置服务器禁止所有非法域名 访问自己的服务器

本文介绍如何在Apache 2.4.1及以后版本中配置非法域名访问的拒绝或跳转,包括直接拒绝访问、跳转到指定目录或文件以及单个域名的拒绝配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、Apache2.4.1以前:

  第一种 直接拒绝访问

打开 httpd.conf  文件,将一下配置追加到文件最后。
#直接拒绝所有非法域名
<VirtualHost *:80>
	ServerName *
	ServerAlias *
	<Location />
		Order Allow,Deny
		Deny from all
	</Location>
	ErrorLog "/alidata/log/httpd/error.log"
	CustomLog "/alidata/log/httpd/info.log" common
</VirtualHost>
 
 
 
 
 
#允许的域名
<VirtualHost *:80>
	DocumentRoot /alidata/www
	ServerName www.你的域名
	ServerAlias www.你的域名
	<Directory "/alidata/www">
	    Options Indexes FollowSymLinks
	    AllowOverride all
	    Order allow,deny
	    Allow from all
	</Directory>
	<IfModule mod_rewrite.c>
		RewriteEngine On
		RewriteRule ^(.*)-htm-(.*)$ .php?
		RewriteRule ^(.*)/simple/([a-z0-9\_]+\.html)$ /simple/index.php?
	</IfModule>
	ErrorLog "/alidata/log/httpd/error.log"
	CustomLog "/alidata/log/httpd/info.log" common
</VirtualHost>

 
 重启apache服务:service httpd restart 
 

第二种 跳转到指定目录或文件

打开 httpd.conf  文件,将一下配置追加到文件最后。
#所有非法域名跳转到指定目录或文件
<VirtualHost *:80>
#指定目录或文件
	DocumentRoot "/yun/www"
	ServerName *
	ServerAlias *
</VirtualHost>
#允许的域名
<VirtualHost *:80>
	DocumentRoot /alidata/www
	ServerName www.你的域名
	ServerAlias www.你的域名
	<Directory "/alidata/www">
	    Options Indexes FollowSymLinks
	    AllowOverride all
	    Order allow,deny
	    Allow from all
	</Directory>
	<IfModule mod_rewrite.c>
		RewriteEngine On
		RewriteRule ^(.*)-htm-(.*)$ .php?
		RewriteRule ^(.*)/simple/([a-z0-9\_]+\.html)$ /simple/index.php?
	</IfModule>
#错误日志
	ErrorLog "/alidata/log/httpd/error.log"
	CustomLog "/alidata/log/httpd/info.log" common
</VirtualHost>

重启apache服务:service httpd restart

第三种:配置单个域名拒绝或跳转(不建议使用)

# 拒绝单个域名 (若要拒绝多个 需要配置多个VirtualHost)
<VirtualHost *:80>
	ServerName www.拒绝的域名
	ServerAlias www.拒绝的域名
	<Location />
	Order Allow,Deny
	Deny from all
	</Location>
</VirtualHost>

2、Apache2.4.1 以后:

apache2.4.1 以后不再需要NameVirtualHost以及不再支持ServerName * 这种写法。使用ServerName * 会报Invalid ServerName “*” use ServerAlias to set multiple server names.

第一种:直接拒绝

打开 httpd.conf  在文件末尾加上一下代码:

#禁止所有非法域名
<VirtualHost *:80>
	ServerName 服务器ip
	ServerAlias *
	<Location />
		Order Allow,Deny
		Deny from all
	</Location>
</VirtualHost>

 
 
#允许访问的域名
<VirtualHost *:80>
	DocumentRoot /alidata/www
	ServerName www.你的域名
	ServerAlias www.你的域名
	<Directory "/alidata/www">
	    Options Indexes FollowSymLinks
	    AllowOverride all
	    Order allow,deny
	    Allow from all
	</Directory>
	<IfModule mod_rewrite.c>
		RewriteEngine On
		RewriteRule ^(.*)-htm-(.*)$ .php?
		RewriteRule ^(.*)/simple/([a-z0-9\_]+\.html)$ /simple/index.php?
	</IfModule>
#错误日志保存位置
	ErrorLog "/alidata/log/httpd/error.log"
	CustomLog "/alidata/log/httpd/info.log" common
</VirtualHost>

 
重启apache服务:service httpd restart 

第二种:跳转到指定目录或文件

打开 httpd.conf  在文件末尾加上一下代码:

#禁止所有非法域名
<VirtualHost *:80>
	DocumentRoot "/alidata/www"
	ServerName 服务器ip
	ServerAlias *
	<Location /alidata/www>
		Order Allow,Deny
		Allow from all
	</Location>
</VirtualHost>
#允许访问的域名
<VirtualHost *:80>
	DocumentRoot /alidata/www
	ServerName www.你的域名
	ServerAlias www.<span style="font-family: Arial, Helvetica, sans-serif;">你的域名</span>
	<Directory "/alidata/www/fdt">
	    Options Indexes FollowSymLinks
	    AllowOverride all
	    Order allow,deny
	    Allow from all
	</Directory>
	<IfModule mod_rewrite.c>
		RewriteEngine On
		RewriteRule ^(.*)-htm-(.*)$ .php?
		RewriteRule ^(.*)/simple/([a-z0-9\_]+\.html)$ /simple/index.php?
	</IfModule>
#错误日志保存位置
	ErrorLog "/alidata/log/httpd/error.log"
	CustomLog "/alidata/log/httpd/info.log" common
</VirtualHost>

重启apache服务:service httpd restart

第三种:配置单个域名拒绝或跳转(不建议使用)

# 拒绝单个域名 (若要拒绝多个 需要配置多个VirtualHost)
<VirtualHost *:80>
	ServerName www.game673.com
	ServerAlias www.game673.com
	<Location />
	Order Allow,Deny
	Deny from all
	</Location>
</VirtualHost>




评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值