如何通过 htaccess 将根页面重定向到另一个子域?

如何通过 htaccess 将根页面重定向到另一个子域?

我正在尝试仅将我的顶级域名(例如 domain.com)重定向到 sub.domain.com。域名的内部页面不应重定向。

我点击了以下链接:如何通过 htaccess 重定向 root 并且仅重定向 root?

但是,当我在我的网站上进行搜索时,查询被附加到子域,如下所示:

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]

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

答案1

在 下方RewriteEngine On添加:

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

如果我没看错的话,听起来您想保留查询字符串。但如果您想删除它,您可以使用:

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

编辑: 要仅/在没有查询字符串的情况下重定向页面,请使用:

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

答案2

我正在使用这个语句:

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

您还可以根据此规则重复使用所有参数:

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

相关内容