- 空主机头防范 & 禁用IP访问Apache服务器
为了防止域名解析恶意指向,我们需要禁止apache默认的空主机头,操作如下:
vi /etc/httpd/conf/httpd.conf
编辑配置文件,在你的站点配置之前再增加一个站点<VirtualHost *:80> ServerName * <Location /> Order deny,allow Deny from all </Location> </VirtualHost>
或者
<VirtualHost *:80> ServerAdmin yourmail@mail.com DocumentRoot /error ServerName abc.com </VirtualHost>
- ServerAlias:服务器别名,在Apache中可以用于设置虚拟主机接收到个域名,也可以用于接收泛解析的域名。
一、用于设置虚拟主机接收多个域名
一个虚拟主机常常会接收多个域名解析,比如:一个虚拟主机要同时介绍doctor-c.net, doctor-c.com两个域名,或者是两个二级域名,如:www.doctor-c.net, www1.doctor-c.net,对于这种情况,可以在用ServerAlias轻松做到,而且此方法实现的跳转是301永久重定向,打开apache的设置文件:httpd.conf,在该主机的设置代码中:<VirtualHost *> ServerName “doctor-c.net” #默认域名; ServerAlias doctor-c.com doctor-c.net www1.doctor-c.net #不同域名用空格隔开; DocumentRoot “D:\wwwroot\doctor-c.net” <Directory “D:\wwwroot\doctor-c.net”> Options Indexes FollowSymLinks AllowOverride all </Directory> </VirtualHost>
保存httpd.conf文件,重启apche即可生效。
二、 用于接收泛域名解析
一个虚拟主机是可以接收泛域名解析的,也是通过SeverAlias选项设置,通过设置该选项不仅可以接收二级泛域名解析,也可以接收三级、四级泛域名解析,具体设置如下:<VirtualHost *> ServerName “doctor-c.net” #默认域名; ServerAlias *.doctor-c.net #用*表示泛域名,如果要接收三级泛域名解析,可以写成这样:*.my.doctor-c.net ; DocumentRoot “D:\wwwroot\doctor-c.net” <Directory “D:\wwwroot\doctor-c.net”> Options Indexes FollowSymLinks AllowOverride all </Directory> </VirtualHost>
保存httpd.conf文件,重启apche即可生效。
- 301域名重定向
1、打开模块LoadModule rewrite_module modules/mod_rewrite.so
2、在虚拟机中添加RewriteEngine On RewriteCond %{http_host} ^a.com [NC] RewriteRule ^(.*)$ http://www.a.com/$1 [R=301,L]
0 条评论。