apache 虚拟目录和多主机头的配置教程

发布时间:2019-10-31编辑:脚本学堂
为大家介绍如何在apache中配置虚拟目录与多主机头的网站,有需要的朋友,可以参考下。

1、多虚拟目录配置
  首先把apache安装到D:Program FilesApache2.2目录下,端口号设置为8080,安装完成后默认的网站根目录为D:Program FilesApache2.2htdocs,通常可以在htdocs下面建立个文件夹MySite,然后在浏览器输入:http://localhost:8080/MySite 这样就可以看到自己的站点了。然而有时想把站点放到其它目录下面,这时就需要配置虚拟目录了。
比如在D盘建立如下文件夹D:CodeWebSite,然后通过http://localhost:8080/DemoSite来访问这个站点

打开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 /DemoSite "D:/Code/WebSite"

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

重启Apache服务后,在浏览器输入http://localhost:8080/DemoSite就可以正常访问了
这里需要注意下目录尽量使用"/",而不是使用"",原因就是""代表转义符有些情况下会导致莫名奇妙的错误。
完整<IfModule alias_module>节点。
 

复制代码 代码示例:

<IfModule alias_module>
    #
    # Redirect: Allows you to tell clients about documents that used to
    # exist in your server's namespace, but do not anymore. The client
    # will make a new request for the document at its new location.
    # Example:
    # Redirect permanent /foo http://localhost/bar

    #
    # Alias: Maps web paths into filesystem paths and is used to
    # access content that does not live under the DocumentRoot.
    # Example:
    # Alias /webpath /full/filesystem/path
    #
    # If you include a trailing / on /webpath then the server will
    # require it to be present in the URL.  You will also likely
    # need to provide a <Directory> section to allow access to
    # the filesystem path.

    #
    # ScriptAlias: This controls which directories contain server scripts.
    # ScriptAliases are essentially the same as Aliases, except that
    # documents in the target directory are treated as applications and
    # run by the server when requested rather than as documents sent to the
    # client.  The same rules about trailing "/" apply to ScriptAlias
    # directives as to Alias.
    #
    ScriptAlias /cgi-bin/ "D:/Program Files/Apache2.2/cgi-bin/"
   
    Alias /DemoSite "D:/Code/WebSite"

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

2、主机头绑定
(在一个端口上绑定多个域名,然后每个域名可以指向不同的目录进行访问,主机头是IIS里面的说法),打开httpd.conf文件,在文件最后添加:
 

复制代码 代码示例:

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

NameVirtualHost *:8080
<VirtualHost *:8080>
    ServerName www.jb200.com
    DocumentRoot "D:Program FilesApache2.2htdocs"
</VirtualHost>

<VirtualHost *:8080>
    ServerName www.mysite2.com
    DocumentRoot "D:CodeMySite"
</VirtualHost>

配置完毕,重启apache,然后浏览器输入www.jb200.com:8080,就会自动定向到D:Program FilesApache2.2htdocs站点了
输入www.mysite2.com:8080就会自动定向到D:CodeMySite站点,apache多站点配置完成。

更多内容,大家可以参考Apache 中文手册,里面有更为详尽的说明与介绍。