假设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。