如何通过htaccess只将根页面redirect到另一个子域名?

我正在尝试只redirect我的顶级域名,例如。 domain.com到sub.domain.com。 域的内部页面不应该被redirect。

我跟着下面的链接: 如何redirect根和只有通过htaccess的根?

但是当我在我的网站上进行search时,查询被追加到子域,如:

sub.domain.com/?q=product在哪里它应该是domain.com/?q=product

我目前的htaccess已经被重写了:

RewriteEngine on RewriteCond %{REQUEST_FILENAME} !\.(png|gif|ico|swf|jpe?g|js|css)$ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . index.php?sef_rewrite=1 [L,QSA] 

为了实现上述行为,我需要添加什么?

就在RewriteEngine On下面,添加:

 RewriteRule ^$ http://sub.domain.com [R=301,L] 

如果我正确阅读,这听起来像你想保持查询string。 但是如果你想删除它,你可以使用:

 RewriteRule ^$ http://sub.domain.com? [R=301,L] 

编辑:只有在没有查询string的情况下redirect/页面,请使用:

 RewriteCond ${QUERY_STRING} ^$ RewriteRule ^$ http://sub.domain.com [R=301,L] 

我正在使用这个声明:

 ServerName mydomain.tld RewriteEngine On RewriteRule ^(.*) http://www.mydomain.tld [R=301,L] 

您也可以按照这个规则重用所有参数:

 RewriteRule ^(.*) http://www.mydomain.tld$1 [R=301,L]