想当年刚开始学php的时候,配置apache虚拟目录真是弄破头皮,当初不理解原理,所以就觉得很难。
1. 打开apache安装目录下面的“conf/httpd.conf”文件,查找到“Include conf/extra/httpd-vhosts.conf”,将前面的“#”去掉(取消注释)。温馨提示:改配置文件的最好习惯是先复制一份作为副本,防止改错之后可以还原。
2. 打开apache安装目录下面的“conf/extra/httpd-vhosts.conf”文件,将下面这段代码复制一份,
代码如下 | 复制代码 |
<VirtualHost *:80> ServerAdmin webmaster@dummy-host2.test.com DocumentRoot "D:/lamp/apache2/docs/dummy-host2.test.com" ServerName dummy-host2.test.com ErrorLog "logs/dummy-host2.test.com-error.log" CustomLog "logs/dummy-host2.test.com-access.log" common </VirtualHost> |
然后需要留下面两行就行了,“DocumentRoot”表示你要指向站点下面的哪个目录,“ServerName”就是虚拟的域名,其他的“ErrorLog”日志什么的可以省略删掉。
代码如下 | 复制代码 |
<VirtualHost *:80> DocumentRoot "e:/web" ServerName www.111cn.net </VirtualHost> |
3. 打开“C:WindowsSystem32driversetc”中的“hosts”文件,新增一行“127.0.0.1 www.111cn.net”。这个文件就是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应网页,如果没有找到,则系统再会将网址提交DNS域名解析服务器进行IP地址的解析。
4. 最后别忘了重启apache服务。
工作原理:当你打开浏览器输入“http://www.111cn.net”的时候,系统会首先自动从Hosts文件中寻找对应的IP地址,然后找到了127.0.0.1,此时本地的apache收到请求,去“conf/extra/httpd-vhosts.conf”文件里面寻找对应的信息,从而实现了整个过程!
多主机头绑定
(就是在一个端口上绑定多个域名,然后每个域名可以指向不同的目录进行访问,主机头是IIS里面的说法),打开httpd.conf文件,在文件最后添加如下内容
#多主机头配置无需放在特定的节点下面,一般直接在配置文件底部添加即可
#NameVirtualHost addr[:port] 为一个基于域名的虚拟主机指定一个IP地址(和端口)
#声明主机头必须加这条指令,否者主机头配置不会生效
#VirtualHost节点下面ServerName就是要绑定的域名,DocumentRoot表示此域名指向的目录
#本机测试的话请在hosts中进行域名绑定如 127.0.0.1 www.mysite1.com
代码如下 | 复制代码 |
NameVirtualHost *:8080 <VirtualHost *:8080> ServerName www.111cn.net DocumentRoot "D:Program FilesApache2.2htdocs" </VirtualHost> <VirtualHost *:8080> |
配置好后,重启apache服务,浏览器输入www.mysite1.com:8080,就会自动定向到D:Program FilesApache2.2htdocs站点了
别名绑定
代码如下 | 复制代码 |
<virtualhost *:80=""> ServerName www.域名.com #主机名 ServerAlias 域名1 域名二 #别名 每个域之间以空格隔开 DocumentRoot "/var/www/rsjy" #所在目录 </virtualhost> |
代码如下 | 复制代码 |
<virtualhost *:80=""> ServerName *.域名.com #主机名 这里就是绑定所有的主域名的二级域名了 DocumentRoot "/var/www/rsjy" #所在目录 </virtualhost> |
多域绑定