2005/08/03 | apache rewrite心得
类别(:: php ::) | 评论(0) | 阅读(203) | 发表于 16:54
总算对apache的rewrite模块有了更深刻的体会,觉得这个功能确实太强大了。
将所有的url都转为静态,我不知道这在访问速度上的损失有多大。
个人认为不会有较大损失,因为这基本上取决服务器对正则表达式的解析做的够不够好。
而正则表达式经过很长时间的发展,已经比较完善了。

下面就是偶最近忙乎的结果,马马乎乎可以运行了。
RewriteEngine on
RewriteRule ^([A-Za-z_-]{1,})\.html$ index.php?cid=$1
RewriteRule ^([A-Za-z_-]{1,})\/p([0-9]{1,})\.html$ index.php?cid=$1&p=$2
RewriteRule ^([A-Za-z_-]{1,})\/([A-Za-z_-]{1,})\.html$ index.php?cid=$1&sid=$2
RewriteRule ^([A-Za-z_-]{1,})\/([A-Za-z_-]{1,})\/p([0-9]{1,})\.html$ index.php?cid=$1&sid=$2&p=$3
RewriteRule ^result_([A-Za-z]{1,})_p([0-9]{1,})\.html$ search.php?keywords=$1&p=$2
RewriteRule ^book_(.+)\.html$ view.php?id=$1


熟悉正则的人一眼就明白了吧,……-……


url看上去都变成了.html,这确实干净多了,另一方面,对于php程序来说,外部注入的难度也提高了,从很大程度上提高了安全性。
正则表达式真是个好东西,偶对发明它的人崇拜死了

偶在想,如果再严格点,对.php的后缀进行过滤,那岂不更安全,呵呵
0

评论Comments