常用RewriteRule整理

SJY发表于:2013年07月31日 00:00 • 阅读:

URL重写

RewriteRule ^tag-(.+)\.html$ tag.php?name=$1

“RewriteRule”,定义一条重写规则。后面的字符串通过正则表达式进行匹配,匹配字符串以 ^ 开头并以 $ 结尾,替换字符串中 $1 指被第一次被匹配成功的字符串。

e.g.

RewriteEngine On
RewriteBase /bbs
RewriteRule ^archiver/((fid|tid)-[\w\-]+\.html)$ archiver/index.php?$1
RewriteRule ^forum-([0-9]+)-([0-9]+)\.html$ forumdisplay.php?fid=$1&page=$2
RewriteRule ^thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ viewthread.php?tid=$1&extra=page\%3D$3&page=$2
RewriteRule ^space-(username|uid)-(.+)\.html$ space.php?$1=$2
RewriteRule ^tag-(.+)\.html$ tag.php?name=$1

此处重写规则的功能:比如当访客访问 http://www.example.com/bbs/forum-21-3.html 时,网站内容将显示为 http://www.example.com/bbs/forumdisplay.php?fid=21&page=3 的内容(访问被重写网址时,网址不会被重定向/跳转)。但如果在某条重写规则末尾添加 [R] 或 [R=301] 等时,访客访问被重写网址时,客户端将被执行重定向(跳转)到重写后的网址。

详细见?.htaccess的url重写

禁止访问

RewriteRule ^.* - [F,L]

这里”-”表示没有替换,F表示禁止对URL地址的存取,L表示停止处理接下来的规则

e.g.

RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} ^MSIE [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Opera [NC]
RewriteRule ^.* - [F,L]

浏览器为IE和Opera的访客将被禁止访问。

欢迎转载,但请保留原文地址 http://www.sjyhome.com/apache/frequently-rewriterule.html

上一篇:

下一篇:

回复(0)