【问题标题】:htaccess Mod_Rewrite from Main Domain to SubDomainhtaccess Mod_Rewrite 从主域到子域
【发布时间】:2016-07-06 17:25:48
【问题描述】:

我听说这个帖子 (.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

如果有人登陆我的转发 URL,我不希望他们再次被 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 时我的代码没有反应,它保持原样。

任何指导都会很棒。

【问题讨论】:

    标签: apache .htaccess redirect mod-rewrite


    【解决方案1】:

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

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

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

    【讨论】:

    • 很高兴我能帮上忙。
    猜你喜欢
    • 1970-01-01
    • 2013-08-04
    • 1970-01-01
    • 1970-01-01
    • 2010-12-14
    • 2014-07-25
    • 1970-01-01
    • 1970-01-01
    • 2013-01-26
    相关资源
    最近更新 更多