`
lw223
  • 浏览: 98145 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Windows下Apache使用虚拟主机

阅读更多

转自: 原作者找不到了 一个转载了n遍地文章  

在httpd.conf文件中
找到
ServerAdmin
前面打上"#"(不含双引号),也就是把这段注释掉.


找到
DocumentRoot "D:/Program Files/Apache2.2/htdocs"(这个是你安装apache的位置,自己应该晓得)

把这段也打上"#",注释掉.

//经过测试,如果没经过以上步骤,此方法同样有效。这个地方是这样的,下面开启了httpd-vhosts.conf,默认的httpd.conf默认配置失效,访问此IP的域名将全部指向vhosts.conf中的第一个虚拟主机,所以不管你注不注释,结果都是一样的。

假如,虚拟空间的各个站点都在D盘的wwwroot目录下,那么请添加这段

<Directory "D:/wwwroot">
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>

这个很重要,接下来,就把各个站点都放在wwwroot目录下,才能正常访问.这一段其实

//如果还有其它站点放在其它目录,如D:/www,可以
再添加
<Directory "D:/www">                                // 视具体情况而变
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>

上面这段其实在改变网站的根目录,默认的根目录是在apache/htdocs中,我的想法是让指向这个IP的其它域名,指没有建立网站目录的,已经指向了这个IP的域名访问一个默认站点。我的操作是这样的,在httpd_vhosts.conf中加入如下代码:

#默认虚拟主机

<VirtualHost *:80>
    DocumentRoot d:\apache\htdocs
    ServerAdmin xxx@gmail.com
    ServerName localhost
</VirtualHost>

有的朋友会问,为什么不用加上面的

<Directory "D:/wwwroot">
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>

因为httpd.conf中已经有了这段内容,当然这个目录你可以随便命名,那样就要再加这个目录代码了。


找到
#Include conf/extra/httpd-vhosts.conf

取消前面的#注释,使之生效

接着就可以到extra目录中,对httpd-vhosts.conf进行设置,添加站点
例子如下:

<VirtualHost *:80>
    DocumentRoot e:\www\discuz\bbs
    ServerName bbs.fzu.cn
</VirtualHost>


//第二个虚拟主机,具体参数自己修改

<VirtualHost *:80>
    DocumentRoot e:\www\discuz\bbs          //第二个虚拟主机所在目录
    ServerName bbs.fzu.cn                          //域名
</VirtualHost>





如果,需要用到rewrite的html静态功能,
请在httpd.conf文件中,找到
#LoadModule rewrite_module modules/mod_rewrite.so

取消掉前面的#注释,使mod_rewrite.so模块生效

并且把所有的
AllowOverride None

更改为
AllowOverride All

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics