Apache Alias创建虚拟目录

最近在使用wampserver2.0i.exe安装下的快捷方式WampServer时,发现一个Bug,详细如下:
本地环境:
windows xp +php+Apache+Mysql

找到客户端的apache目录下的Alias directories目录下的Add an alias,单击它
进入命令行操作界面,
按照提示:
先输入虚拟目录名称,假设我们输入kk,enter回车;
再按提示输入虚拟目录指向的主目录文件位置,假设我们输入c:/wamp/apps/meas,enter回车
再根据提示,enter回车,命令行窗口自动退出。

这时
可以在wamp文件夹(安装包所在文件夹,如果是在C盘的话,默认路径就是’C:/wamp’)下的alias文件夹下,找到一个文件
kk.conf:
内容如下
Alias /kk/ “c:/wamp/apps/meas/”
<Directory “c:/wamp/apps/meas/”>
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
Allow from all

在ie下测试:
输入:http://localhost/kk
提示:
Not Found
The requested URL /kk was not found on this server.

再次输入:http://localhost/kk/,正确运行虚拟目录下的按照默认文件优先级别执行设置的优先级别文件,如index.php

在ff中测试的情况和IE类似。但是对于phpmyadmin来说,就不存在这种情况,这是由于我们使用上述方式产生的.conf文件内容和phpmyadmin.conf文件不一致造成的,我们将手动输入的情况放在最后来讨论。

首先这样调整输入,在输入虚拟目录位置时,我们输入:c:/wamp/apps/meas/ 也就是多加一个反斜杠,查看相关文件发现内容与第一种情况一致,说明反斜杠在不在末尾对文件内容不产生影响,

接着再次调整,将输入行替换为:c:/wamp/apps/meas,这其实是按照提示进行的正确输入,之前的输入也是正确的,因为windows下的文件目录就是之前的形式。查看相关文件发现内容仍然与之前的相同,说明斜杠的正反对文件内容也没有影响,

继续调整,输入替换为:c:/wamp/apps/meas/,查看相关文件,发现内容仍然一致,说明末尾的斜杠也是不影响的。

最后我们来讨论,使用手动方式来建立虚拟目录的情况,也就是之前我们所说的情况,

新建一个文件(注意是和phpmyadmin.conf位于相同目录下),比如叫yy.conf,编辑文件内容,可以先复制粘贴phpmyadmin.conf文件中的内容,然后修改其中的参数, 就是将

Alias /kk/ “c:/wamp/apps/meas/” 行中的 kk 改为:”真实的虚拟目录名”,将c:/wamp/apps/meas/ 改为真实的主目录文件位置
将<Directory “c:/wamp/apps/phpmyadmin3.2.0.1/”>行中的 c:/wamp/apps/phpmyadmin3.2.0.1/ 亦作相应修改
注意末尾带上斜杠。

重启客户端,就是点击Quick Admin下的Restart All Services命令,再进行测试。这一步很关键,如果不重启那么测试时仍然会出现404error的错误提示。

在ie下和ff下测试均正常。

总结:
bug:除非手动建立虚拟目录,否则phpmyadmin虚拟目录与别的新建的虚拟目录,在浏览器中测试时是存在不同的情况的
输入http://localhost/phpmyadmin可以运行,输入http://localhost/phpmyadmin/ 也能运行
但是输入:http://localhost/your_virtual_catalog_name是会提示出错的,
而输入http://localhost/your_virtual_catalog_name/又正常

还有几种情况,读者也可以做些测试,就是将:.conf文件中的内容做一些改动

如将 Alias /test/ “c:/wamp/apps/meas/” 改为: Alias /test “c:/wamp/apps/meas/”
或者 Alias /test/”c:/wamp/apps/meas”
或者 Alias /test/ “c:/wamp/apps/meas”

同理后面的
<Directory “c:/wamp/apps/phpmyadmin3.2.0.1/”>也可以去除末尾的斜杠来进行测试。

鉴于以上情况,作者建议,不使用客户端的alias工具来新建虚拟目录,而是使用手动方式来新建,这样就不会出现任何问题,当然注意相应参数要做些变动

最后说明一点,手动新建.conf文件时,文件名其实与虚拟目录的文件名没有关联
虚拟目录的文件名仅取决于 Alias /test/ “c:/wamp/apps/meas/” 中的第一个参数(在本行中为’test’)。

发表评论