Apache服务器常见问题汇总

  1. 空主机头防范 & 禁用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>
    
  2. 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即可生效。

  3. 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 条评论。

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据