我觉得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,写入以下内容
-
<?php
-
echo"我是documentroot目录";
-
?>
5,在d:/xampp/webdav下面建一个文件index.php,写入以下内容
-
<?php
-
echo"我不是documentroot目录,也不是documentroot的子目录";
-
?>
二,测试
1,测试1
-
<VirtualHost*:80>
-
ServerAdminxtaying@gmail.com
-
DocumentRootd:/xampp/www
-
ServerNamelocalhost
-
ErrorLoglogs/www.test.com-error_log
-
CustomLoglogs/www.test.com-access_logcommon
-
-
Alias/webdavd:/xampp/webdav
-
Alias/wwwd:/xampp/www
-
-
<Directory"d:/xampp/www">
-
SSLOptions+StdEnvVars
-
AllowOverrideAll
-
Allowfromall
-
</Directory>
-
</VirtualHost>
重起一下 apache,当我们访问http://localhost/www/,会看到我是documentroot目录,当我们访问http://localhost/webdav/,会看到我不是documentroot目录,也不是documentroot的子目录。
从上面的例子中,很明显的看出,alias可以把非documentroot目录中的目录,”拉到“自己的目录树中。上例中webdav根www目录是平级关系。
2,测试2
-
用AliasMatch/(www|webdav)d:/xampp/$1代替测试1中的
-
Alias/webdavd:/xampp/webdav
-
Alias/wwwd:/xampp/www
重起一下apache,当我们访问http://localhost/www/和http://localhost/webdav/会看到和测试一中有相同的结果。Alias的正则功能是可以用的。
3,测试3
在测试1的基础上,加上Redirect 302 /webdav http://localhost/www
-
Alias/webdavd:/xampp/webdav
-
Alias/wwwd:/xampp/www
-
Redirect302/webdavhttp:
重起apache,当我们访问http://localhost/webdav/会重定向到http://localhost/www/.
4,测试4
在测试1中加入以下内容
-
Alias/test/aaaad:/xampp/www
-
Alias/testd:/xampp/www
重起apache,你会发现http://localhost/test/和http://localhost/test/aaaa都可以访问,但是如果你把他们二个的位置颠倒一下的话,后面一个就不能访问了。也就是说最子目录要放在最前面
三,总结一下
mod_alias中的其他命令根alias,aliasmatch,redirect差不多,他们三个可以代表三个方向吧。所以其他就不说了,用的时候替换上面的三个命令就OK了.
分享到:
相关推荐
NULL 博文链接:https://zhengdl126.iteye.com/blog/417281
本文件是针对apache的httpd-2.2.15.tar.gz源码包实现apache动态虚拟主机的配置,以及如何通过mod_vhost_alias.c增加模块mod_vhost_alias.so激活模块,使动态虚拟主机运行,以及实现了用户认证。
apache模块mod_concatx 提高js/css加载速度,有源码和dll,和说明文档
启用mod_rewrite模块 在conf目录的httpd.conf文件中找到 LoadModule rewrite_module modules/mod_rewrite.so 将这一行前面的#去掉。 2.在要支持url rewirte的目录启用 Options FollowSymLinks和AllowOverride All ...
Apache的mod_vhost_alias的重新实现。 添加了其他配置选项,以使单个服务器上的共享托管更加容易。 该模块允许使用多个路径来针对HTTP主机名进行测试,这使得子目录成为子域,或者在找不到文档根目录的情况下指定...
将模块从Apache1.3转化到Apache2.0 Apache 2.0 对请求的处理 Apache 2.0 线程安全问题 经常问到的问题 认证、授权、访问控制 CGI动态页面 .htaccess文件 如何.../指南 用户网站目录 服务器端包含入门 关于DNS和...
LGPL下的Apache2模块。 Mod Sql Alias将拦截特定的URI请求,并将其分派到使用MySQL别名表提供服务的相应页面。
虚拟别名定义在/etc/apache2/mods-enabled/alias.conf文件内 端口定义在文件/etc/apache2/ports.conf 另外,还需要说明的两组目录是:mods-available和mods-enabled后者是前者的链式文件目录 sites-enabled是...
(如file.min.js请求,服务file.js ) node-static-alias包装(继承)有用的模块 ,这为该模块添加了选项。 它的工作方式类似于映射或Apache的 。 看起来也像 。 这可以检查文件是否存在。 即成file.js代替file.min...