.htaccess 为合并到单个域的多个域设置301重定向
我遇到了一个棘手的情况,四个不同的网站正在合并成一个网站。我正试图找出最好的方法来处理301重定向从这些网站的旧网址 这里有一个例子来说明。假设我有以下四个站点:.htaccess 为合并到单个域的多个域设置301重定向,.htaccess,redirect,dns,.htaccess,Redirect,Dns,我遇到了一个棘手的情况,四个不同的网站正在合并成一个网站。我正试图找出最好的方法来处理301重定向从这些网站的旧网址 这里有一个例子来说明。假设我有以下四个站点: https://red.com https://blue.com https://green.com https://magenta.com 他们现在都将住在https://red.com 每个网站都有一个“团队”页面 一旦我将所有URL指向同一个位置,我想看看是否有人试图输入以前的URL之一,并将其指向站点上的特定新位置,例如:
https://red.com
https://blue.com
https://green.com
https://magenta.com
他们现在都将住在https://red.com
每个网站都有一个“团队”页面
一旦我将所有URL指向同一个位置,我想看看是否有人试图输入以前的URL之一,并将其指向站点上的特定新位置,例如:
URL Entered: https://blue.com/team/
301 Redirect: https://red.com/blue/team/
URL Entered: https://green.com/team/
301 Redirect: https://red.com/green/team/
etc.
因为人们可能来自多个不同的域,所以我不能在.htaccess中使用标准的相对301重定向。我希望能够将这些其他域的DNS直接指向red.com
,然后在那里处理301重定向逻辑
如何处理这个问题有什么想法吗?您可以简单地使用
302临时重定向
而不是使用301永久重定向
**另外,不要忘记清除web浏览器上以前的301重定向缓存;如果使用。您可以使用RewriteCond从主机名中提取点之前的零件。(不过,如果
foo.co.uk
等域也可能与此相关,您必须小心——如果您不想将它们重定向到https://red.com/foo.co/team/
相应地,但是里面只有foo
,然后你必须开发一个稍微复杂一点的逻辑。)明白了!这看起来一般正确吗<代码>#蓝色团队页面RewriteCond%{HTTP_HOST}^www.Blue.com$Redirect 301/teamhttps://red.com/blue/team/ #绿色团队页面RewriteCond%{HTTP_HOST}^www.Green.com$Redirect 301/teamhttps://red.com/green/team/ #默认团队页面重定向301/团队https://red.com/team/(我还不能真正测试这一点,因为我还没有指出这些域的DNS。此外,这里的重定向被简化,将涉及比原始域更多的子目录和不同的名称,因此我不需要担心foo.co示例。)您必须使用RewriteRules来执行实际重定向,只有那些受RewriteCond影响的重定向,它们对重定向指令不起作用。哦,好吧!那么更像这样?RewriteCond%{HTTP\u HOST}^www.blue.com$
RewriteRule^/team$”https://red.com/blue/team/“[R]
是的,类似这样。模式中的点应该转义,否则它们意味着任何任意字符(尽管在这种特殊情况下可能不太可能出现)。但是,我考虑的不是每个域的这种条件-规则组合,而是RewriteCond%{HTTP_HOST}^www\([a-z0-9-]+)\.com$重写规则“^team$”https://red.com/$1/team/“[R]
(这就是为什么我提到像foo.co.uk
这样的东西可能需要额外的治疗。)
URL Entered: https://blue.com/team/
301 Redirect: https://red.com/blue/team/
URL Entered: https://green.com/team/
301 Redirect: https://red.com/green/team/
etc.