apache,重写模块学习(1)

因为要配置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后半部分的内容,这种说法只是帮助我记忆和理解。。。。有错误请指教~~~

未完待续....


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值