htaccess Mod_Rewrite从主域到子域

时间:2016-03-20 04:02:55

标签: apache .htaccess redirect mod-rewrite

我听过这个帖子(.htaccess redirect all pages to new domain)非常有用。但是,我的请求与原始请求略有不同。

上面的主题讨论了从旧域重定向到新域的问题,但我已经请求只将主域转发到子域。

这是一个问题 - 如何自动将主域中的所有请求转发到子域。例如 -

着陆网址:http://example.com 转发网址:http://sub.example.com

着陆网址:http://example.com?var=foo 转发网址:http://sub.example.com?var=foo

如果有人登陆我的转发网址,我不希望它们再次被301重定向。简单来说,我不想使用一条规则,该规则始终重定向所有登陆http://sub.example.com的请求。着陆网址是相同的。

如果我按照上述链接的建议,我相信在我的情况下会发生,因为我想从主域转发到子域。

这是我到目前为止所做的工作。它只将我的一个域转发到另一个子域。但是,当有任何URL参数时,它不起作用,它只保留相同的旧URL。

RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^$ http://sub.example.com/? [R=301,NE,NC,L]

简单来说 - 我的代码在http://example.com?var=foo时没有反应,并且保持不变。

任何指导都会很棒。

1 个答案:

答案 0 :(得分:2)

您需要删除条件并更改正则表达式。

{{1}}

清除浏览器缓存,然后尝试一下。让我知道它是如何工作的。