apache 重写模块学习(1) alias,RewriteBase用法

Alias的用法
在本地windows上建立的虚拟主机如下

<VirtualHost *:80>
    ServerName    m.xxx.cn
    ServerAlias   m.xxx.cn
    DocumentRoot "D:/wamp/wamp/www/m.xxx.cn/"
    #这里配置欢迎首页面 
    DirectoryIndex index.html index.htm index.php 
    Alias /m/ 'D:/wamp/wamp/www/m.xxx.cn/n/'#这里是alias配置
    <Directory />
    Options FollowSymLinks
    #不许可别人修改我们的页面
    AllowOverride None
    #设置访问权限
    Order allow,deny
    Allow from all
    </Directory>
</VirtualHost>

alias配置如下

Alias /m/ 'D:/wamp/wamp/www/m.xxx.cn/n/'

现在浏览http://m.xxx.cn/m/b.html,正常情况应该是会访问D:/wamp/wamp/www/m.xxx.cn/m/b.html文件,但是因为配置了alias所以不会访问m目录下的内容,而是会访问n目录下的内容
RewriteBase的用法
通过上面的设置,在访问http://m.xxx.cn/m/index.html的时候,实际访问的是D:/wamp/wamp/www/m.xxx.cn/n/index.html文件
在访问http://m.xxx.cn/m/index.html的时候访问的是D:/wamp/wamp/www/m.xxx.cn/n/a.html
则可以进行如下的htaccess文件配置

RewriteEngine On
RewriteRule ^index\.html\/?$ a.html

然后,如果我想在访问这个网址的时候,访问的是网站根目录下的地址怎么办?

RewriteEngine On
RewriteBase /
RewriteRule ^index\.html\/?$ a.html

这样,访问的就是D:/wamp/wamp/www/m.xxx.cn/a.html
在网站根目录下新建了一个f目录
修改n下的htaccess文件如下

RewriteEngine On
RewriteBase /f/
RewriteRule ^index\.html\/?$ a.html

这时,访问http://m.xxx.cn/m/index.html实际访问的是D:/wamp/wamp/www/m.xxx.cn/f/a.html
```
我想,RewriteBase这个东西的作用应该大致了解了,访问的文件的真实的路径应该就是RewriteBase(没写就相当于设置的当前目录)+RewriteRule后半部分的内容

标签: none

添加新评论