apache虚拟主机配置: 二级目录访问跳转到其他根文件夹

apache虚拟主机配置: 二级目录访问跳转到其他根文件夹

扫码添加渲大师小管家,免费领取渲染插件、素材、模型、教程合集大礼包!

访问 http://www.abc.com/course/ 。实际访问的是:d:/www/moodle/index.PHP

?

12345678910111213 <VirtualHost *:80> ServerAdmin webmaster@abc.com DocumentRoot "d:/www/abc" ServerName www.abc.com ##ServerAlias Alias /course "d:/www/moodle" <Directory "d:/www/moodle"> Options FollowSymLinks AllowOverride None Order deny,allow allow from all </Directory> </VirtualHost>

了解一下根目录和虚拟目录的关系:
安装过apache之后打开httpd.conf文件会发现DocumentRoot默认设置的应该是apache安装目录中的htdocs文件夹。然后你的网页就可以放大这个htdocs文件夹中测试。例你在里面放了一个1.PHP。可以输入http://127.0.0.1/1.php进行测试。这个DocumentRoot后面的路径就是apache的根目录。有时候我们不想将自己的网站放到这里。例如我想要放到F:/MyPHP中来运行。那么就可以修改DocumentRoot为F:/MyPHP。然后将那个1.php放入F:/MyPHP文件夹。同样使用http://127.0.0.1/1.php可以正常访问。
虚拟目录是什么?顾名思义只是一个虚拟的目录。和真实目录是有差别的。先来看看使用真实目录访问。我们在刚才的F:/MyPHP中建立一个文件夹Test。然后在里面放入2.php。这个时候就可以通过http://127.0.0.1/Test/2.php访问。但是有些时候你可能建立的文件夹和想要输入的访问地址有一个映射关系。而不是直接输入Test文件夹名。这样做的原因有很多其中就有一个是安全问题。因为那样别人就会知道你的根目录的文件夹。具体点。你在Test文件夹中放置了2.php。但是想要通过http://127.0.0.1/cmj/2.php访问2.php而不是通过http://127.0.0.1/Test/2.php来访问怎么办呢?这个时候我们就需要虚拟目录了。很明显没有cmj这个文件夹。但是又能够像访问一个正式的目录一样来访问。就需要一种映射关系。怎么做呢?在httpd.conf中添加:

Alias /cmj "F:/MyPHP/Test/"
<Directory "F:/MyPHP/Test">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
解释一下什么意思。最主要是前面一个句Alias /cmj "F:/MyPHP/Test/"。它的意思就是我通过在更目录访问所用ip后添加/cmj可以访问F:/MyPHP/Test/中的东西。后面的主要是设置权限问题。这里不再赘余。

简单的说,打开httpd.conf 在最后加入如下内容:

?

1234567891011 <VirtualHost 127.0.0.2:80>DocumentRoot d:/AppServ/www2ServerName 127.0.0.2:80< /VirtualHost><Directory "d:/AppServ/www2">Options Indexes FollowSymLinks MultiviewsAllowOverride AllOrder Allow,DenyAllow from all</Directory>

"d:/AppServ/www2" 为你的站点存放目录:重启apache2以后。你的虚拟主机就配置好了。以后就可以通过127.0.0.2,和127.0.0.3进入不同的站点了。
下面为详细说明分析:
在我们安装APACHE的时候一般默认的apache的配置是只有一个网站。这样切换起来很不方便。其实这个问题很好解决。就是把本机的apache配置成为虚拟服务器。但是。网上大多数教程的是教用 apache如何配置基于域名的虚拟主机的。而在本机调试网站的时候。一般都是用本地ip(127.0.0.1 或 localhost)直接访问。没有用到域名。所以得把apache配置成为基于ip地址的虚拟主机。
首先。我们都知道,所有以127打头的ip地址都应该指向本机。并不只有127.0.0.1。这点大家可以试试。
这样一来。也就是说本机有足够多的ip地址供你来开设虚拟主机了。
废话少说。进入正式的配置工作。下面是apache的httpd.conf里相关配置部分( httpd.conf 位于 Apache2.2\conf ):
1。Listen部分。必须直接指定端口。不指定ip地址。配置应写为:
Listen 80
2。不用像基于域名的虚拟主机那样写“NameVirtualHost”。
3。虚拟主机配置段:在httpd.conf 最后加上

?

12345678 <VirtualHost 127.0.0.2:80>DocumentRoot d:/AppServ/www2ServerName 127.0.0.2:80< /VirtualHost><VirtualHost 127.0.0.3:80>DocumentRoot d:/AppServ/www3ServerName 127.0.0.3:80</V irtualHost>...

4。然后相应的配置好各个目录属性。下面是一个目录属性的典型配置:

?

123456789101112 <Directory "d:/AppServ/www2">Options Indexes FollowSymLinks MultiviewsAllowOverride AllOrder Allow,DenyAllow from all</Directory><Directory "d:/AppServ/www3">Options Indexes FollowSymLinks MultiviewsAllowOverride AllOrder Allow,DenyAllow from all</Directory>

重启apache2以后。你的虚拟主机就配置好了。以后就可以通过127.0.0.1和127.0.0.2,127.0.0.3进入不同的站点了

分享到 :
相关推荐

国外vps主机(国外vps主机测评)

服务器行业从业5年,我介绍市面上常见的美国VPS主机商的产品,包括原始价格、折扣价格...

独享空间租用和共享空间租用啥不同(独享空间租用和共享空间租用啥不同呢)

独享空间租用和共享空间租用有什么不同?独享空间是指VPS。共享空间是指虚拟主机。这两...

香港vps评测(香港VPS性能和速度评测)

一直以来香港VPS都是国内用户建站的首要选择,具有访问速度快、稳定性高和价格便宜等优...

辨别假冒的独立服务器,这5种测试方法很有用(服务器可靠性测试)

如何区分VPS主机和独立服务器?VPS主机就是将一台服务器分割为多个虚拟专享服务器。...

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注