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

1、http2.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、http2.4.1 以后:

http2.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>
<span style="font-family: Arial, Helvetica, sans-serif;"></span>
#允许访问的域名
<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>
时间: 2024-10-13 16:14:14

配置 Apache 服务器禁止所有非法域名 访问自己的服务器的相关文章

关于配置apache时无法用自定义域名访问论坛的问题

之前配置apache的时候,自定义了一个域名,并且将ip和域名写入了windows上的hosts文件里,然后出现了使用ip地址可以正常访问,在windows上也可以ping通自定义的那个域名,但是在浏览器中无法使用自定义的域名进行访问. 我的网络设置为桥接,自动获取ip地址的 然后再虚拟机上测试网络服务的时候发现, 正常系统默认网卡名应该为eth0,而在我的虚拟机上第一个网卡就命名为了eth1 接下来查看网络服务的配置文件,又发现与eth0相关的配置文件中是有内容的,但是与eth1相关的配置文件

apache2.4 只允许合法域名访问网站 禁止使用ip、非法域名访问

1.ip访问禁用ip访问 只能对应端口有效<VirtualHost *:80> ServerName xx.xx.xx.xx ServerAlias * <Location /> Order Allow,Deny Deny from all </Location></VirtualHost><VirtualHost *:8511> ServerName xx.xx.xx.xx ServerAlias * <Location /> Or

配置server禁止全部非法域名 訪问自己的server

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 &qu

tomcat 绑定 ip 及域名,限制非法域名访问

公司WEB 采用linux+tomcat架构.经常会收到电信的警告,说某个IP下挂用了未备案域名,如果不处理就封IP.鉴于此,需要将tomcat的访问地址进行限制,只允许通过IP地址或者自己指定的域名来访问. 配置tomcat/conf/server.xml 文件,找到下面部分: 此处defaulthost="localhost" 改为"forbidden" ,表示默认所有访问都是禁止.然后在<host name> 部分添加允许访问的地址和目录 --&g

【wuzhicms】apache 设置禁止访问某些文件或目录

[apache配置禁止访问] 1. 禁止访问某些文件/目录 增加Files选项来控制,比如要不允许访问 .inc 扩展名的文件,保护php类库: <Files ~ "\.inc$"> Order allow,deny Deny from all </Files> 禁止访问某些指定的目录:(可以用 <DirectoryMatch>   来进行正则匹配) <Directory ~ "^/var/www/(.+/)*[0-9]{3}&quo

Nginx实现ssl一级、二级域名证书部署并用https访问代理转发服务器

1.  规划 域名 解析IP Nginx代理 htpps://www.devcult.com 47.88.10.155   htpps://auto.devcult.com 47.88.10.155 https://www.automa.com htpps://www.automa.com 103.200.200.203   本次实验用了2个一级域名,1个二级域名,2个ip地址:实现功能如上图所示,要求全部使用https,并且一级域名实现自动补全www. 2. 前提准备 47.88.10.155

无法执行该操作,因为链接服务器 &quot;xxxxx&quot; 的 OLE DB 访问接口 &quot;SQLNCLI&quot; 无法启动分布式事务

在存储过程中使用事务,并且使用链接服务器时,报类似下面的错误 链接服务器"****"的 OLE DB 访问接口 "SQLNCLI10" 返回了消息 "没有活动事务.".消息 7391,级别 16,状态 2,过程 proc_SyncDiliveryData,第 20 行无法执行该操作,因为链接服务器 "*****r" 的 OLE DB 访问接口 "SQLNCLI10" 无法启动分布式事务. 度娘了很久,找到了

域名访问和ip访问区别

域名访问和ip访问区别 ip访问对应某一台确定的服务器: 域名访问相当于在ip访问的基础上,做了一个反向代理的中间功能.例如:百度,很多人会同时使用,如果使用的是同一台服务器的话,服务器估计会扛不住,如果访问的是域名,中间的反向代理,可以将用户反向代理到不同的服务器上,减轻服务器压力. 通过域名访问的话,一般会对用户的请求做处理,比如识别.过滤作用,即只允许符合规则的ip进行访问,其余的就要被过滤掉.但是如果知道服务器的准确ip,就有可能避免这个问题(当然,这是在服务器的安全设置不完善的情况下才

Nginx,Apache只允许域名访问详细配置

Nginx,Apache只允许域名访问详细配置 一.nginx配置只允许域名访问 # 设置不允许Ip访问web(default_server) server { listen 80 default_server; server_name _; return 403; } # 设置www.meteor-yu.com域名访问web server { listen 80; server_name www.meteor-yu.com; location /ngx_status { stub_status