【问题标题】:Detecting a 301 Redirect using Client Side Code Only仅使用客户端代码检测 301 重定向
【发布时间】:2014-05-02 14:29:44
【问题描述】:
我有一个不再被使用的网站,因为该产品不再被开发。该站点将使用 301 重定向来引导对新产品站点的任何访问。
我想做的是向第一次访问旧网站的任何人显示div,以解释产品名称更改,但仅限于首先访问旧网站的人。
这可能使用 only javascript 吗?我read 关于使用 PHP 的可能解决方案,但如果可能的话,我再次需要一个仅 JS 的解决方案。
注意:我在网站上使用的是 jQuery 2.1,所以 jQuery 解决方案很好。
【问题讨论】:
标签:
javascript
redirect
http-status-code-301
【解决方案1】:
这是不可能的。如果您返回 301,浏览器将跟随它,并且不会显示您可能发送的任何 HTML。
或者,您可以返回 200,以及以下内容:
<div>The new site is at newsite.com</div>
<script type="text/javascript">
setTimeout(function() { window.location('newsite.com'); }, 60 * 1000);
</script>
这会显示 div 并重定向用户(60 秒后),但不会通知搜索引擎内容已移至新站点。
您可以(在一定程度上)通过rel="canonical" 缓解 SEO 问题,但 Google 等。建议不要这样做(您的情况是 301 的用途,rel="canonical 说“此内容有两个版本,仅在此处索引一个):
<head>
<link rel="canonical" href="newsite.com">
</head>
<body>
<div>The new site is at newsite.com</div>
<script type="text/javascript">
setTimeout(function() { window.location('newsite.com'); }, 60 * 1000);
</script>
</body>