我正在尝试仅将我的顶级域名(例如 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]