修改.htaccess文件达到301重定向的目的,其中如果想将domain.com域名下的所有url转到www.domain.com下,规则如下:5 k4 R. p, @/ t# A- h R
* n! q. i2 o5 M6 M
Options +FollowSymLinks
$ e# m5 P2 I8 E7 H5 G2 g h" VRewriteEngine on% J) E% M9 ?( Z3 K- ?6 u" n9 B% n
RewriteCond %{HTTP_HOST} ^domain.com [NC]
) Z1 S3 Y- e7 t0 z+ yRewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301] ) o; [& t3 U& R1 |7 `
, T0 h( R5 M n+ f+ T0 D5 }) R但实际用到的301转向并不是如此简单的应用,诸如程序调整目录,文件命名规则的改变,就需要用到正则表达式来设置相关的301重定向了,几个简单的301重定向正则表达式的例子如下:$ Y3 x% O/ S7 }; ~7 S2 F8 y$ J
1 e8 o/ E3 |1 Z% |6 n8 J
RewriteRule ^(.*?)(\/\d.*)$ $1_bing$2 [R,L]
) |: p9 M" _/ s* I4 N1 n( sRedirectMatch ^/archiver/(.*)$ /bbs/archiver/$1 [L]
# {( d# N7 r6 V b, I, ~" V/ N; FRedirectMatch ^/chrome/([a-zA-Z]+)/(.*).html$ /chrome/$1-$2.html [L]
& V9 M! @* R- Y% z/ H5 _, ERedirectMatch ^/msn/([a-z]+)/(\d{4})([0-9]+).html$ /live/$1/2009$3.html [L]. ]- t: C3 j4 Z+ O8 S5 @4 M
) y1 g8 U6 i% k" ~2 Z% Q% i
8 Z% a( `$ L. S# Z9 P4 s([a-z]+)表示多位的小写英文字母。; Q1 J6 [, h# j) ]' A+ }
([a-zA-Z]+)表示多位的大小写英文字母。
/ F _# x3 a# S" k1 \0 I: h8 Z8 _8 t2 C7 x5 B
([0-9])表示单个的阿拉伯数字;* P( U0 b" E' Q; q* r
([0-9]{1,2})表示两位的阿拉伯数字;* C) T1 _6 c$ n; ]* ?3 U( [
([0-9]+)表示多位的阿拉伯数字;& H! i' E) z# l y6 X
& }1 D- O9 i8 F4 d6 o
(\d)同上一个。" Q* X: h& p9 G+ J7 ^. G5 g# z v
(\d{4})表示多位的阿拉伯数字的前四位数字。
9 G* Y4 g7 d; G; W(\b)表示单词的开始或结束; (\w)表示任意的字母或数字或下划线或汉字;
7 ^3 [" ]1 d* ^' B6 q(\s)表示任意的空白符;
9 _% J+ p" k4 b) h$ s" \2 Q0 E( o% W7 D8 \+ c, }' Z8 ?
(.*)表示任意字符。 1 i. ~9 Z9 |! w+ k# C2 J: X
7 g6 B2 L; ^& |* K( _: `4 Zredirect 301 /go/search.htm /data/google.html* s2 A' i; w, Y6 C+ I
redirect permanent /go/search.htm /data/google.html
! p/ ~ V* I( H, b- {3 j' r其中redirect permanent和redirect 301应用效果相同。
! g D$ u1 H: l- [! H/ b9 u* Y% j9 f0 J5 h/ w/ g1 v9 O
更多正则表达式的内容看这里吧http://zh.wikipedia.org/wiki/正则表达式- D3 T7 G1 k% |: j) ^; p& ?; D; m& s
月光博客自己总结的常用正则表达式http://www.williamlong.info/archives/433.html
( m5 |- a0 |+ s9 Q. U |