apache配置虚拟目录和多域名绑定

虚拟目录

什么是虚拟目录

首先说一下什么是虚拟目录,举个例子说明

假设你的网站放到了localhost/a/b/c/d/yoursite中,每次访问yoursite,都需要输入一大串a,b,c,d,这样就会造成不必要的重复操作,

想去掉abcd但是他们有可能又有着特殊的意义,比如说用来标记几几年、测试还是正式、学习还是工作之类种种一开始建立目录时预先设置的意义,如localhost/2016/job/test/oldsite就是我本地机器中2016年工作中测试的一个过去站

但是现在我操作的是localhost/2016/myself/study/nowsite 我近段时间都会一直操作这个目录,我就想把不必要的目录屏蔽掉,我想要在地址栏直接输入localhost/nowsite就可以进行浏览调试

那服务器使localhost/nowsite可以代替localhost/2016/myself/study/nowsite的作用就是—虚拟目录

如何配置

方法其实很简单,打开apache的配置文件httpd.conf,找到<IfModule alias_module>节点在其中添加如下代码

#下面是虚拟目录声明格式
#Alias用来定义虚拟目录及虚拟目录路径,其中虚拟目录名称用于URL访问的路径别名,可以和虚拟目录名称不同
#<Directory/>节点用于定义目录的访问权限等
#
#Alias 虚拟目录名称 虚拟目录路径
#<Directory 虚拟目录路径>
#   Options Indexes FollowSymLinks
#   AllowOverride All
#   Order allow,deny
#   Allow from all
#</Directory>

#下面是具体的示例,/DemoSite是目录别名 "D:/Code/WebSite"是虚拟目录的实际路径
Alias /nowsite "{yourpath}/2016/myself/study/nowsite"
#下面是对虚拟目录的配置,如果与主体配置相同则可以省略
<Directory "{yourpath}/2016/myself/study/nowsite">
    Options Indexes FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

多域名绑定

什么是多域名绑定

多域名绑定就如字面意思,就是我有多个域名解析到了同一个服务器,我要让不同的域名指向不同的程序,这就是多域名绑定

如何配置

打开apache的配置文件httpd.conf,在其中添加如下代码

#多主机头配置无需放在特定的节点下面,一般直接在配置文件底部添加即可
#NameVirtualHost addr[:port] 为一个基于域名的虚拟主机指定一个IP地址(和端口)
#声明主机头必须加这条指令,否者主机头配置不会生效
#VirtualHost节点下面ServerName就是要绑定的域名,DocumentRoot表示此域名指向的目录
#本机测试的话请在hosts中进行域名绑定如 127.0.0.1  www.mysite1.com

NameVirtualHost *:8080
<VirtualHost *:8080>
    ServerName www.mysite1.com
    DocumentRoot "D:\Program Files\Apache2.2\htdocs"
</VirtualHost>

<VirtualHost *:8080>
    ServerName www.mysite2.com
    DocumentRoot "D:\Code\MySite"
</VirtualHost>