2015-02-10 47 views
1

我甚至不知道如何正确地问这个问题,因为我从来没有见过它做过。我非常擅长编辑名称服务器,创建记录和cname等,但我不知道这是否可能。重定向已经301重定向的域的URL

我有一个拥有多个域的客户端,它们都指向同一个站点。所以说主要的域名是www.client-site.com。然后www.other-domain-1.comwww.other-domain-2.com只是设置为301重定向到指向www.client-site.com

所以,一切都很好,直到目前他正在请求www.other-domain-1.com/facebookwww.other-domain-1.com/linkedin点到他的Facebook页面或LinkedIn个人资料,而不是重定向到主域名。

301重定向发生在注册商,我不相信有一种方法可以从那里做他想做的事。但我想我可以将它指向Web主机名称服务器并将其作为插件域包含它,然后使用.htaccess文件仅对主机名执行301重定向,然后根据需要重定向主机名/路径。

那么这样做的正确方法是什么?喜欢的东西...

Redirect 301 http://other-domain-1.com/facebook http://facebook.com/account 
Redirect 301 http://other-domain-1.com/linkedin http://linkedin.com/profile 
Redirect 301 http://other-domain-1.com http://client-site.com 

回答

1

您可以在DOCUMENT_ROOT/.htaccess文件中使用此代码:

RewriteEngine On 

# facebook redirect 
RewriteCond %{HTTP_HOST} ^(www\.)?other-domain-1\.com$ [NC] 
RewriteRule ^facebook/?$ http://facebook.com/account [L,NC,R=302] 

# linked-in redirect 
RewriteCond %{HTTP_HOST} ^(www\.)?other-domain-1\.com$ [NC] 
RewriteRule ^linkedin/?$ http://linkedin.com/profile [L,NC,R=302] 

# rest of the redirects 
RewriteCond %{HTTP_HOST} ^(www\.)?other-domain-1\.com$ [NC] 
RewriteRule^http://client-site.com%{REQUEST_URI} [L,NE,R=302] 
+1

在这种情况下,不应该是永久重定向吗? – skribe 2015-02-10 12:11:31

+1

是的,一旦规则验证正常,这些应该转换为'301'。在测试阶段,一个人不得使用'301',因为恶意重定向也会被缓存在浏览器中。 – anubhava 2015-02-10 13:59:17

+0

你的解决方案只有在我从'(?:www \。)'中删除了'':''后才能使用?你能解释一下吗?在我删除它们之前,重定向只是简单地将重写url连接到主域名,例如这个“http:// client-site.com/www.facebook.com”而不是重定向 – skribe 2015-02-10 14:52:45

0

所以,基于以上anubhava回答我的服务器上工作的解决方案是

facebook redirect 
RewriteCond %{HTTP_HOST} ^(www\.)?other-domain-1\.com$ [NC] 
RewriteRule ^facebook/?$ http://facebook.com/account [L,NC,R=302] 

然后在得到它们后,所有工作都将R=302更改为R=301,以使重定向成为永久性的。

+0

请不要在答案部分发表。您可以在我发布的答案下面或在您的问题下面发表评论 – anubhava 2015-02-10 15:00:02

+0

我接受了你的答案。但是我在阅读堆栈溢出帮助之前,先回答我自己的问题,并且我发现这样做是完全可以接受的,因为**我自己制定了一部分解决方案。**对我来说,这样做没有意义你做了,如果你的原始答案是正确的,但在我的特定服务器上不起作用。由于您现在编辑了答案,所以有些评论没有意义。 – skribe 2015-02-10 15:10:49

+0

删除'(?:...)'的变化本质上是非常小的,不会改变规则的整体流程。这就是为什么像这样的小问题应该通过留下评论答案来解决。希望澄清。我已经提出了你的问题。 – anubhava 2015-02-10 15:12:59