码迷,mamicode.com
首页 > 数据库 > 详细

apache2.4.7 .htaccess重写url的一些细节

时间:2014-11-18 23:42:40      阅读:410      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   io   ar   color   sp   div   on   

今晚玩了下apache的重写规则,发现一些被容易忽略的细节,分享一下。

首先,说明一下实例环境的其他相关配置:

documentRoot  /var/www/html

.htaccess的放置路径  /var/www/html/L-Production/public

 

1、替换规则的“绝对”和“相对”,例如:

1 # Redirect Trailing Slashes...
2 RewriteRule ^(.*)/$ /$1 [L,R=301]

这是一个用重定向消除url最后斜杠的实现,这里需要注意 /$1 的斜杠,它是一个“绝对”的写法,当我在浏览器输入http://127.0.0.1/L-Production/public/js/,意外发现url被重定向成http://127.0.0.1/js,而当我把 /$1 的斜杠去掉后,url才被重定向为预期的http://127.0.0.1/L-Production/public/js。

 

2、模式匹配的对象与RewriteBase无关,只与.htaccess的所在目录有关,例如:

1 RewriteBase /L-Production
2 
3 # Redirect Trailing Slashes...
4 RewriteRule ^(.*)/$ $1 [L,R=301]

在浏览器输入http://127.0.0.1/L-Production/public/js/,url会被重定向成http://127.0.0.1/L-Production/js,而非http://127.0.0.1/L-Production/public/js。

这说明了 ^(.*)/$ 匹配的字符串是js/,而不是url中除去了/L-Production的public/js,RewriteBase只影响替换规则。

另,我在最后的测试中还发现,当这里的$1加上斜杠后,重定向结果仍然是http://127.0.0.1/L-Production/js,这说明在设置了RewriteBase后,所有的替换规则都变成了"绝对"的。

apache2.4.7 .htaccess重写url的一些细节

标签:style   blog   http   io   ar   color   sp   div   on   

原文地址:http://www.cnblogs.com/chieveit/p/4106678.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!