请教关于apache重定向

请教关于apache重定向

在用rewrite指令写重定向的时候,下面两种情况是怎么实现的?

1.客户端输入的url:http://a.com
服务器rewrite到http://b.com
客户端浏览器显示的还是http://a.com这个地址

2.客户端输入的url:http://a.com
服务器rewrite到http://b.com
客户端浏览器显示的是http://b.com这个地址
1.  
RewriteEngine on
RewriteRule ^a\.com$ b\.com [L]

2.
RewriteEngine on
RewriteRule ^a\.com$ b\.com [R.L]

注视:
R: 外部强制重定向, 客户端IE可以看到URL的变化
L: 规则停止
好像不对,有一个奇怪的事情,我有两个二级域名:
http://1.a.com
http://2.a.com
分别做重定向到:
http://3.b.com
http://4.c.com

重定向配置都一样
RewriteEngine on
RewriteCond   %{HTTP_HOST}                 ^1\.a\.com$
RewriteRule   ^(.+)                        %{HTTP_HOST}$1          [C]
RewriteRule   ^1\.a\.com(.*)  http://3.b.com$2 [R,L]

可是,http://1.a.com在浏览器显示的还是这个地址,http://2.a.com显示的就不对了。

还有一个问题就是$1,$2...,这些是指向本条rewriterule里面的第一个括号,第二个括号....,还是所有的rewriterule的按顺序计算下来的。比如:
RewriteEngine on
RewriteCond   %{HTTP_HOST}                 ^1\.a\.com$
RewriteRule   ^(.+)                        %{HTTP_HOST}$1          [C]
RewriteRule   ^1\.a\.com(.*)  http://3.b.com$1$2 [R,L]
里面的
RewriteRule   ^(1.+)\.a\.com(.*)  http://3.b.com$1$2 [R,L]
$1,$2分别指的是什么?
回复:
$0 $1 所指本条RewriteRule的引用
例:
RewriteRule   ^(1.+)\.a\.com(.*)  http://3.b.com$0$1 [R,L]
$0 --> (1.+)
$1 --> (.*)

故,你的RewriteRule   ^1\.a\.com(.*)  http://3.b.com$2 [R,L]  是错误的。