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后半部分的内容