怎么在Apache中配置一个虚拟域名

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么在Apache中配置一个虚拟域名相关的知识,希望对你有一定的参考价值。

现在的apache差不多都是2.0以上的了,修改httpd.conf文件中的 LoadModule vhost_alias_module modules/mod_vhost_alias.so 的这行把 # 号去掉 ,同样 Include conf/extra/httpd-vhosts.conf 这行也把 # 号去掉 。
接下来 ,修改 此目录下extra 文件夹中 的 httpd-vhosts.conf 添加内容 如下 :
<VirtualHost *:80>
DocumentRoot "D:/wwwroot/my.domain.cn/company"
ServerName *.b2b.domain.cn
</VirtualHost>
这个是泛解析 的

<VirtualHost *:80>
DocumentRoot "D:/wwwroot/my.domain2.cn"
ServerName www.domain2.cn
</VirtualHost>
参考技术A 在apache的安装目录中会有一个site-available
一般有一个default的文件
1、cp default xxsite
2、编辑xxsite文件,修改servername和documentroot 等参数
3、a2site xxsite
4、重启apache
一般就可以了
参考技术B 一般是直接到控制面板中绑定域名的。

apache中虚拟主机的配置

一、两种方式:基于域名的虚拟主机和基于IP地址的的虚拟主机  (这里基于前者)

二、作用:实现在同一个web服务器下,同时运行很多个站点(项目)

三、虚拟主机的配置

  1、在核心配置文件中加载虚拟主机配置文件

Apache中,默认的提供了一个专门配置虚拟主机的配置文件  conf/extra/httpd-vhosts.conf,但是Apache在启动的时候只会读取核心配置文件conf/httpd.conf。因此,需要开启它:在httpd.conf中,找到Include  conf/extra/httpd-vhosts.conf,去掉前面的注释符"#"。

  2、在虚拟主机的配置文件中创建虚拟主机

<VirtualHost *:80>

  ServerName    //服务器名(域名)  例:www.itcast.com

  DocumentRoot  //文档根目录      例:"h:/jiuyeban/homepage"

</VirtualHost>

  3、配置浏览器端的域名解析

更改本地的hosts文件,将域名与IP地址对应起来。hosts文件路径为:C:\Windows\System32\drivers\etc\hosts,或者在运行里面输入:drivers,再进入etc也能找到hosts文件。

  注意:如果配置了虚拟主机,那么原来默认的文档根目录就发生了改变,被第一个虚拟主机所覆盖,如果不想被改变,要么修改要么重新再配置一个主机。

四、目录访问权限

  1、我们在访问某一个目录的时候,可能有三种情况:

    第一种:直接访问某个默认的页面;

    第二种:展示文件列表;

    第三种:Forbidden

  2、Apache中,默认是deny from all,如果要开放某一个目录,需要单独进行配置。

<Directory  “目录”>

  Allow from all

 

DirectoryIndex  index.html  index.php  default.php   //配置索引页(设置默认首页

Options Indexes    //允许展示列表设置默认首页无法显示时,是否允许列出目录结构

</Directory >

  为了方便管理,一般的做法是将该配置指令放和虚拟主机放在一起。

五、分散式配置文件

  1、分散到apache各个目录的配置文件,只针对该目录以及该目录的子目录有效。因为有些东西不希望用户能直接访问到,则单独设置权限。

    该分布式配置文件的名字:.htaccess

  2、.htaccess文件的特点:在此配置文件中对apache的配置不需要重新启动Apachc服务。

    主要作用:域名重定向、防盗链、自定义错误页面。

 

 

 

  .htaccess文件的优先级最高,可以书写任何主机相关的配置

3、在主配置文件(虚拟主机httpd-vhosts.conf)中,规定哪个目录可以使用分布式配置文件

  在对应的<Directory "目录"></Directory>中,使用Allowoverride设置是否开启外部的配置文件(.htaccess),all或者none

4、其他设置

  Order  //设置当前目录的访问权限

    Order allow , deny  //如果没有明确的允许项则全部拒绝

    Order deny , allow  //如果没有明确的拒绝项则全部允许

 

 

 

 

Apache中,默认是deny from all,如果要开放某一个目录,需要单独进行配置。

以上是关于怎么在Apache中配置一个虚拟域名的主要内容,如果未能解决你的问题,请参考以下文章

apache怎么配置localhost的虚拟主机

如何在apache 配置虚拟目录

apache 一个ip怎么绑定多个域名不同目录

apache2.4怎么屏蔽其他域名

wamp用www域名访问怎么配置?

怎么用apache绑定2级域名?