`
moqiang02
  • 浏览: 527723 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
文章分类
社区版块
存档分类
最新评论

apache mod_alias模块功能介绍

 
阅读更多

我觉得mod_alias根mod_rewrite挺像的,都可以实现url的重写,而mod_alias可以实现简单的url重写的功能 ,而mod_rewrite可以实现比较复杂的重写。mod_alias有一种功能是非常强大的,使不在DocumentRoot目录下的内容也能成为”自己文档“中的一部分。而不需要在重新弄一个VirtualHost。

一,测试前的准备,

1,DocumentRoot是d:/xampp/www

2,在www文件下面建一个test文件夹,test文件夹下面建一个aaaa文件夹

3,在建一个文件夹是d:/xampp/webdav

4,在d:/xampp/www下面建一个文件index.php,写入以下内容

  1. <?php
  2. echo"我是documentroot目录";
  3. ?>

5,在d:/xampp/webdav下面建一个文件index.php,写入以下内容

  1. <?php
  2. echo"我不是documentroot目录,也不是documentroot的子目录";
  3. ?>

二,测试

1,测试1

  1. <VirtualHost*:80>
  2. ServerAdminxtaying@gmail.com
  3. DocumentRootd:/xampp/www
  4. ServerNamelocalhost
  5. ErrorLoglogs/www.test.com-error_log
  6. CustomLoglogs/www.test.com-access_logcommon
  7. Alias/webdavd:/xampp/webdav
  8. Alias/wwwd:/xampp/www
  9. <Directory"d:/xampp/www">
  10. SSLOptions+StdEnvVars
  11. AllowOverrideAll
  12. Allowfromall
  13. </Directory>
  14. </VirtualHost>

重起一下 apache,当我们访问http://localhost/www/,会看到我是documentroot目录,当我们访问http://localhost/webdav/,会看到我不是documentroot目录,也不是documentroot的子目录

从上面的例子中,很明显的看出,alias可以把非documentroot目录中的目录,”拉到“自己的目录树中。上例中webdav根www目录是平级关系。

2,测试2

  1. 用AliasMatch/(www|webdav)d:/xampp/$1代替测试1中的
  2. Alias/webdavd:/xampp/webdav
  3. Alias/wwwd:/xampp/www

重起一下apache,当我们访问http://localhost/www/和http://localhost/webdav/会看到和测试一中有相同的结果。Alias的正则功能是可以用的。

3,测试3

在测试1的基础上,加上Redirect 302 /webdav http://localhost/www

  1. Alias/webdavd:/xampp/webdav
  2. Alias/wwwd:/xampp/www
  3. Redirect302/webdavhttp://localhost/www

重起apache,当我们访问http://localhost/webdav/会重定向到http://localhost/www/.

4,测试4

在测试1中加入以下内容

  1. Alias/test/aaaad:/xampp/www
  2. Alias/testd:/xampp/www

重起apache,你会发现http://localhost/test/和http://localhost/test/aaaa都可以访问,但是如果你把他们二个的位置颠倒一下的话,后面一个就不能访问了。也就是说最子目录要放在最前面

三,总结一下

mod_alias中的其他命令根alias,aliasmatch,redirect差不多,他们三个可以代表三个方向吧。所以其他就不说了,用的时候替换上面的三个命令就OK了.

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics