因为要配置apache的htaccess文件,所以配置了下htaccess,但是发现很多问题,之前也配置过,还以为对htaccess文件已经大致了解,但是事实却不是这样,果然,无知最是可怕。。。。。。先把linux放下,学习下这个,毕竟这个在现在用的比linux多,
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,正常情况应该是会访问m目录下的b.html文件,但是因为配置了alias所以不会访问m目录下的内容,而是会访问n目录下的内容
RewriteBase的用法
通过上面的设置,在访问http://m.xxx.cn/m/index.html的时候,实际访问的是D:/wamp/wamp/www/m.xxx.cn/n/index.html文件
为了实验RewriteBase的用法,想了个需求,在访问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
再新建了一个目录,这时的目录如下
修改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后半部分的内容,这种说法只是帮助我记忆和理解。。。。有错误请指教~~~
未完待续....