应该“临时”redirect页面使用301redirect?

假设foo.com是我最终想要托pipe一个网站的地方,当它准备就绪时, blog.foo.com就是我目前托pipe一个网站的地方 。 在foo.com准备好之前,可以永久redirect(301)到blog.foo.com吗?

一旦原始网站准备就绪,这会对它有什么负面影响吗? 如果是这样,为什么/如何?


我想要使​​用永久redirect的一个原因是使用临时redirect对blog.foo.com的search排名产生了负面影响。 我使用Blogger来提供服务,所以我不认为添加规范的元标记是可能的。

301redirect是可caching的。 这意味着一旦用户点击301,下一次他们请求原始URL时,浏览器将自动转到redirect目标,而不向服务器发出请求。

即使浏览器caching被清除,沿途的任何透明代理也可以caching301响应。

302响应没有被caching。

还有其他的3xx响应表明,资源应该从一个不同的URL检索,但我不是很熟悉, 实际使用它们知道如何浏览器和代理对待他们。 如果您select使用其中之一,请在部署之前进行testing。


其实阅读RFC可以是很有启发性的。

从301s的部分:

具有链接编辑function的客户端应尽可能将对Request-URI的引用重新链接到服务器返回的一个或多个新引用。 除非另有说明,否则此响应是可caching的。

这意味着书签和RSS提要URL可能会在浏览器和RSS提要阅读器中被更改。 有些客户这样做,有些则不这样做。 你可以发送301caching头,明确告诉客户端不要caching它,但这不会影响上述行为。

303和307响应是专门为响应客户端错误地实施302redirect而创build的。 请求方法应该保持相同的后续请求,但很less的客户端实际上这样做,而是总是变成一个GET请求。

303响应告诉客户端他们应该在下一跳使用GET请求。 303请求不能被caching。

307的响应告诉客户端,他们应该继续使用相同的请求方法为下一跳。 307响应只有在明确告诉它是使用其中一个caching标头时才可caching。

pre-HTTP / 1.1客户端通常不能理解303和307。 对于开发者没有实现整个规范的新客户来说也是如此。 如果你知道你有很多很老的客户,这可能只是一个问题。


至于你对search引擎优化的关注, blog.foo.com没有得到更高的排名的原因是你指出foo.com是正确的url,它只是暂时blog.foo.com 。 因此,任何指向foo.com链接都应该增加foo.com的排名,而不是blog.foo.com 。 searchstream量将被发送到foo.com并被redirect到blog.foo.com而不是直接发送到blog.foo.com

当您删除redirect时, foo.com将具有较高的排名,并且不会将stream量发送到blog.foo.com 。 我希望这是你想要发生的事情。


你该怎么办?

我会去303redirect,除非我在接受POST请求的网站上有表格。 对于那些我会使用307s,这将导致POST在临时网站上再次。

我也会更改302响应302redirect的任何请求,指示它是HTTP/1.0而不是HTTP/1.1

如果您决定使用301s,则在删除redirect后,很可能仍然会看到blog.foo.comstream量持续一段时间。 blog.foo.com的排名也可能持续一段时间。

免责声明:我远离一个search引擎优化专家。

使用301永久redirect在这里似乎不太合适。 不是从语义HTTP代码的angular度或从SEO的angular度来看。 301应该用于永久性的redirect,而不是你的。 这是暂时的 从SEO的angular度来看,内容应该开始从foo.com转移到blog.foo.com,这与你想要的长期相反。

我会build议使用302或307。