前段时间在网上看了一个不重启就可以实现更改虚拟主机域名、目录等配置的方法,总的来说就是利用一个vhost.map文件,具体方法请看http://zhaoyukun.blog.51cto.com/1428752/400183

    但是令人郁闷的是,我今天按照这个方法操作,却怎么也不能成功,不论我输入什么域名访问,都访问的是httpd.conf文件中DocumentRoot项定义的路径下的index.html文件,期待高手能帮小弟一把。

    偶然,有看到了一个方法,就是利用mod_vhost_alias模块实现不重启添加虚拟主机,经过试验,成功,现将详细步骤贴出与大家分享。

    这个方法实现效果:
        1、浏览者输入www.abc.com,访问的是网站根目录下的/abc.com/www.abc.com/主页文件
        2、浏览者输入abc.abc.com这样的二级域名,访问的是网站根目录下的/abc.com/abc.abc.com/
        3、如果需要更改绑定的域名,可以用PHP等程序对相应的文件夹进行改名,比如将abc.com改为.123.com

步骤一
        确定httpd.conf文件中UseCanonicalName Off这一项正常
        在httpd.conf文件中添加VirtualDocumentRoot /www/%2+/%0这一行,注意/www是你网站的根目录,请根据自己的实际情况修改。 

步骤二
        在httpd.conf文件中加入以下内容
RewriteEngine On
#RewriteCond %{HTTP_HOST} ^w+.w{1,3}$
RewriteCond %{HTTP_HOST} ^[a-z-0-9]+.w{1,3}$
RewriteRule (.*) http://www.%{HTTP_HOST}$1 [R=301,L]
这样,输入abc.com访问时,也可以正常访问。

步骤三
        在网站根目录下建立相应的文件夹和测试用的index.html文件,然后重启apache

    这时候,虚拟主机就配置完成了。