htaccess处理子域和剩余流量

时间:2016-07-08 12:56:38

标签: apache .htaccess redirect mod-rewrite

我知道这里有关于这个主题的一系列其他问题,但我无法用它们来克服我的问题。

以下是我要做的事情:我们进行了域名更改,我们将网站从其自己的域名移至了子域名:

www.oldsite.com - > http://oldsite.newdomain.com

还有一个旧的子域名:

http://sub.oldsite.com需要http://sub.newdomain.com

我试图在htaccess中处理这个问题,首先捕获是否存在子域并重定向它,如果没有,只需重定向剩余的流量。

这是我到目前为止所尝试的内容:

 store.oldsite.com => store.newsite.com   (this is the only sub domain)

 oldsite.com    =>  newsite.com    (All existing pages, could be up to 4/5 deep.   e.g.    oldsite.com/a/b/c/d  => newsite.com/a/b/c/d)

我单独尝试了所有这些,同时将301重定向保留在底部,以防任何规则未得到满足。代码块上方的注释说明了我收到的结果。我对htaccess并不精通,可以使用我能得到的任何帮助。提前谢谢。

我的期望:

math.Float32frombits

1 个答案:

答案 0 :(得分:2)

您可以尝试此文件:

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteBase /

    #Redirect old store to new domain
    RewriteCond %{HTTP_HOST} ^store\.oldsite\.com$ [NC]
    RewriteRule ^(.*)$ http://store.newsite.com/$1 [L,R=301,NC]

    #redirect old site (with or without www) to new domain
    RewriteCond %{HTTP_HOST} ^(www\.|)oldsite\.com$ [NC]
    RewriteRule ^(.*)$ http://newsite.com/$1 [L,R=301,NC]

    #redirect others to new domain homepage
    RewriteCond %{HTTP_HOST} oldsite\.com$ [NC]
    RewriteRule ^.*$ http://newsite.com/? [L,R=301]
</IfModule>