Apache配置虚拟目录和多主机头

呃,相当古老的话题了,不过网上的资料实在是太坑爹,无奈只能自己动手做个备忘了。。。
这里不提虚拟目录和主机头的区别了,不懂得童鞋去面壁思过吧

多个虚拟目录

  首先把Apache安装到D:\Program Files\Apache2.2目录下,端口号设置为8080,安装完成后默认的网站根目录为D:\Program Files\Apache2.2\htdocs,通常我们可以在htdocs下面建立个文件夹MySite,然后在浏览器输入:http://localhost:8080/MySite 这样就可以看到我们自己的站点了。然而有时我们想把站点放到其它目录下面,这时就需要配置虚拟目录了
比如我们在D盘建立如下文件夹D:\Code\WebSite,然后通过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>

多主机头绑定
(就是在一个端口上绑定多个域名,然后每个域名可以指向不同的目录进行访问,主机头是IIS里面的说法),打开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>

配置好后,重启apache服务,浏览器输入www.mysite1.com:8080,就会自动定向到D:\Program Files\Apache2.2\htdocs站点了

输入www.mysite2.com:8080就会自动定向到D:\Code\MySite站点,如此就可以实现在一个服务器上同时运行多个站点

时间: 2024-09-29 02:51:57

Apache配置虚拟目录和多主机头的相关文章

Apache 配置虚拟目录和虚拟主机

Apache配置虚拟目录 在httpd.conf文件中添加 大约在245行 # Create Virtual catalogue <IfModule dir_module> DirectoryIndex index.html index.htm index.php Alias /MyWeb "c:/MyWeb" // 在C盘的根目录下有一个Myweb文件夹,可以把这个文件夹看做虚拟目录 <Directory c:/MyWeb> Order allow,deny

apache 配置虚拟目录

1.apache 配置虚拟目录 找到 httpd.conf 在 <Directory /> Options FollowSymLinks AllowOverride None Order deny,allow #Deny from all</Directory> 节点下输入Alias /bbb "c:/zzz/" 即可

Apache配置虚拟目录+Zend Studio访问

1 概述 Apache配置虚拟目录,然后可以通过Zend Studio的工程去访问,只需要修改Apache的httpd.conf文件. 2 修改httpd.conf 找到Apache安装目录下的httpd.conf,在末尾加上: <IfModule dir_module> DirectoryIndex index.html intex.htm index.php Alias /alias path <Directory path> Options All AllowOverride

PHP学习笔记:APACHE配置虚拟目录、一个站点使用多域名配置方式

我用的是xmapp lite2016的集成包,配置虚拟目录教程如下: 找到httpd-vhosts.conf这个文件,这个文件一般是在xampp\apache\conf\extra这个路径下面,找不到可以搜索下. 你会看到类似的界面: # # Use name-based virtual hosting. # ##NameVirtualHost *:80 # # VirtualHost example: # Almost any Apache directive may go into a Vi

Apache配置虚拟目录

问题背景:从网上下载了一个PHP项目A,A项目需要部署在网站的根目录下. 在解决这个问题的过程中,尝试配置了Apache虚拟目录.虽然成功了,但是没有进一步实践. 换了另外一种方式,来实现把A项目部署到根目录下. 即通过http://localhost/访问A项目,而不是http://localhost/A. 在JavaWeb开发中,把项目部署到Tomcat的webapp/ROOT下就可以了. 下面是PHP和Apache的情况: 在apache目录下打开 conf->httpd.conf文件,找

Apache之——配置虚拟目录

转载请注明出处:http://blog.csdn.net/l1028386804/article/details/48142201 一.配置 Apache配置虚拟目录主要是修改httpd.conf文件就可以了. 打开httpd.conf文件,找到如下代码: <IfModule dir_module> DirectoryIndex index.html </IfModule> 如图所示: 在这段代码的下面添加如下代码: #配置虚拟目录 <IfModule dir_module&

apache 配置网站目录,虚拟目录,新端口

1 配置网站目录,以ubuntu为例 1)打开apache的默认配置文件夹:cd /etc/apache2/sites-available 2)打开配置文件,本机为sudo vi  000-default.conf 3) 修改路径 <VirtualHost *:80> ServerAdmin [email protected] DocumentRoot /data/test ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_

关于Apache服务器中配置虚拟目录和虚拟主机

一.配置虚拟目录: ① ②注销DocumentRoot路径(这个配置文件中使用'#'来注释一行语句) ③关于配置的虚拟路径中权限设置语句的解读 例图: 图中语句的意思是: order表示读取语句是先allow,后deny.所以执行顺序是:allow(允许所有ip访问站点文件夹)--->deny(拒绝所有ip访问站点文件夹)--->allow from 218.20.253.2(允许ip地址218.20.253.2访问)--->deny from 218.20(拒绝所有以218.20开头的

apache2.4配置虚拟目录

刚开始学习,跟着韩顺平老师的视频课件学习ing~ 这是自己在配置虚拟目录时遇到的问题以及解决办法,记录下来~ ---------------------------分割线君------------------------------- 我的apache安装目录为E:\apache\Apache24 想要配置的目录为D:\myblog 中的网页文件 step1 添加虚拟目录节点 找到E:\apache\Apache24\conf 中的httpd.conf文件,增加下图红框中代码 step2 注释d