重定向根(只有根)的URL到另一个域?

问题描述:

我正在寻找重定向我的域example.com和www.example.com到http://example2.com,但我想保留所有访问我的帖子在http://example.com/sdfhs继续到目的地。重定向根(只有根)的URL到另一个域?

本质上,我只想重定向根和www域,并保持其余不变。

我该如何使用.htaccess来做到这一点?

您可以简单地匹配任何至少包含1个字符的网址(.+),并将其标记为重写引擎的最后一条规则,即[L]。 然后重定向其他任何东西(.*)到新的域(唯一的其他事情不会匹配到那一点将是根)。

RewriteEngine On 
RewriteRule ^(.+)$ - [L] 
RewriteRule ^(.*)$ http://example2.com/$1 [R=301,L] 
+0

这将所有域重定向到example.com。我不相信这是理想的。 – 2012-04-20 13:13:59

为什么不

RewriteEngine On 
RewriteCond ${HTTP_HOST} example\.com|www\.example\.com 
RewriteRule ^/?$ http://example2.com [L] 
+0

这会将所有域重定向到example.com。我不相信这是理想的。 – 2012-04-20 13:13:51

+0

@JasonMcCreary对不起,你是对的,我记住这只适用于他的(虚拟)主机。我已经更新了对http_host的测试,我希望我的重新模式是正确的。 – 2012-04-20 13:25:03

不知道如果你仍然有这个问题,但我有它在我的领域之一(YOURLS安装)。尝试:

RewriteEngine On 
RewriteRule ^$ http://www.example.com/ [R=301,L] 

它适用于我的安装,但在您的网站上检查出来。

启用mod_rewrite的,并通过httpd.conf的.htaccess,然后把这个代码在你.htaccessDOCUMENT_ROOT目录:

Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase/

RewriteCond ${HTTP_HOST} ^(www\.)?example\.com$ [NC] 
RewriteRule ^$ http://example2.com [L,R=301]