【RewriteCond%{HTTP_HOST}^(www\.)?xxx\.com$】
这是重写条件,前面%{HTTP_HOST}表示当前访问的网址,只是指前缀部分,格式是www.xxx.com不包括“$表示字符串结尾,\.表示转义的.,如果不转义也行,推荐转义,防止有些服务器不支持,?表示前面括号www\.出现0次或1次,这句规则的意思就是如果访问的网址是xxx.com或者就执行以下的语句,不符合就跳过。
配置域名跳转
<IfModule mod_rewrite.c>
RewriteEngine on RewriteCond %{HTTP_HOST} ^www.domain1.com$ RewriteRule ^/(.*)$ $1 [R=301,L] </IfModule> 如果是多个域名,可以这样设置: <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_HOST} ^www.domain.com [OR] RewriteCond %{HTTP_HOST} ^www.domain1.com$ RewriteRule ^/(.*)$ $1 [R=301,L] </IfModule> 或者: <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_HOST} !^www.domain2.com$ RewriteRule ^/(.*)$ $1 [R=301,L] </IfModule>注意:^/(.*)$ 其中 其中^表示正在表达式匹配,/ 是表示基目录,意思是从域名后开始匹配。而后面的$1==(.*) $1用来表示前面基目录后面匹配的任意字符,有时不带上在重写的时候不带上这个/ 出错
前面%{HTTP_HOST}表示当前访问的网址,只是指前缀部分 %{REQUEST_URI}表示访问的相对地址,就是相对根目录的地址,就是域名/后面
example :
赛卡软件近期更换了域名,新域名为www.sicasoft.com, 更加简短好记。这时需要将原来的域名ss.kiya.cn, 以及论坛所在地址ss.kiya.cn/bbs/定向到新的域名,以便用户可以找到,并且使原来的论坛 URL 继续有效而不出现 404 未找到,比如原来的http://ss.kiya.cn/bbs/tread-60.html, 让它在新的域名下继续有效,点击后转发到http://bbs.sicasoft.com/tread-60.html,而其他网页,如原先的http://ss.kiya.cn/purchase不会到二级域名bbs.sicasoft.com/purchase上,而是到www.sicasoft.com/purchase
按照这样的要求重定向规则应该这样写:RewriteEngine On
RewriteCond %{REQUEST_URI} ^/bbs/ RewriteRule ^bbs/(.*) $1 [R=permanent,L] RewriteCond %{REQUEST_URI} !^/bbs/ RewriteRule ^(.*) $1 [R=permanent,L]