301重定向正则表达式实例应用

修改.htaccess文件达到301重定向的目的,其中如果想将domain.com域名下的所有url转到www.domain.com下,规则如下:

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^domain.com [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]

但实际用到的301转向并不是如此简单的应用,诸如程序调整目录,文件命名规则的改变,就需要用到正则表达式来设置相关的301重定向了,几个简单的301重定向正则表达式的例子如下:

RewriteRule ^(.*?)(\/\d.*)$ $1_bing$2  [R,L]
RedirectMatch ^/archiver/(.*)$ /bbs/archiver/$1 [L]
RedirectMatch ^/chrome/([a-zA-Z]+)/(.*).html$ /chrome/$1-$2.html [L]
RedirectMatch ^/msn/([a-z]+)/(\d{4})([0-9]+).html$ /live/$1/2009$3.html [L]


([a-z]+)表示多位的小写英文字母。
([a-zA-Z]+)表示多位的大小写英文字母。

([0-9])表示单个的阿拉伯数字;
([0-9]{1,2})表示两位的阿拉伯数字;
([0-9]+)表示多位的阿拉伯数字;

(\d)同上一个。
(\d{4})表示多位的阿拉伯数字的前四位数字。
(\b)表示单词的开始或结束; (\w)表示任意的字母或数字或下划线或汉字;
(\s)表示任意的空白符;

(.*)表示任意字符。

redirect 301 /go/search.htm /data/google.html
redirect permanent /go/search.htm /data/google.html
其中redirect permanent和redirect 301应用效果相同。

更多正则表达式的内容看这里吧http://zh.wikipedia.org/wiki/正则表达式
月光博客自己总结的常用正则表达式http://www.williamlong.info/archives/433.html

0 Comments :

发表评论