Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess 为合并到单个域的多个域设置301重定向_.htaccess_Redirect_Dns - Fatal编程技术网

.htaccess 为合并到单个域的多个域设置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之一,并将其指向站点上的特定新位置,例如:

我遇到了一个棘手的情况,四个不同的网站正在合并成一个网站。我正试图找出最好的方法来处理301重定向从这些网站的旧网址

这里有一个例子来说明。假设我有以下四个站点:

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.