凌峰创科服务平台

网站自动跳转代码如何正确设置?

核心概念:跳转的两种主要方式

  1. 前端跳转:在用户的浏览器上执行一段脚本(通常是JavaScript)来完成跳转,用户会先看到原始网站,然后页面会“闪”一下,跳转到新网站。
  2. 后端跳转:在网站服务器端完成跳转,服务器在发送网页内容之前,就告诉浏览器:“请访问另一个地址”,用户几乎感觉不到这个过程,地址栏会直接变成新地址。

JavaScript 前端跳转(最简单)

这是最直接、最容易实现的方法,只需在原网站的 HTML 页面中插入一段代码即可。

网站自动跳转代码如何正确设置?-图1
(图片来源网络,侵删)

立即跳转(不延迟)

<head> 标签内插入以下代码,页面加载后会立即跳转。

<script>
  window.location.href = "https://www.your-new-site.com";
</script>

延迟跳转(几秒后跳转)

这种方法用户体验更好,因为它允许用户在跳转前看到一些提示信息(本站已搬家,即将跳转到新地址...”)。

<!-- 在 <body> 标签内显示提示信息 -->
<p>网站正在搬家,3秒后将自动跳转到新地址,请及时更新您的书签。</p>
<!-- 在 <head> 标签内插入延迟跳转脚本 -->
<script>
  setTimeout(function() {
    window.location.href = "https://www.your-new-site.com";
  }, 3000); // 3000 毫秒 = 3 秒
</script>

优点

  • 实现极其简单,只需修改 HTML 文件。
  • 不需要服务器权限。

缺点

网站自动跳转代码如何正确设置?-图2
(图片来源网络,侵删)
  • SEO 不友好:搜索引擎爬虫可能会忽略 JavaScript,导致跳转不被识别,影响网站在搜索引擎中的排名和权重传递。
  • 依赖用户浏览器:如果用户禁用了 JavaScript,跳转将无法执行。
  • 有“闪屏”:用户会先看到旧页面,然后才跳转。

HTML Meta 标签跳转(推荐用于简单场景)

这是一种比纯 HTML 更规范的方式,同样是在 <head> 标签内插入,它告诉浏览器在指定时间后自动刷新页面到新 URL。

<meta http-equiv="refresh" content="3; url=https://www.your-new-site.com" />
  • content="3":表示等待 3 秒。
  • url=...:表示跳转的目标地址。

优点

  • 比 JavaScript 更简单,代码更少。
  • 无需编程知识。

缺点

  • SEO 有限:虽然比纯 JS 稍好,但很多现代搜索引擎对 meta refresh 的处理也比较谨慎,尤其是对于延迟跳转,可能被视为“临时重定向”。
  • 同样有“闪屏”
  • 无法被 JavaScript 禁用,但可以被浏览器设置禁用。

服务器端重定向(最专业、最推荐)

这是最专业、对 SEO 最友好的方法,跳转由服务器完成,浏览器完全不会加载旧页面的内容,用户会直接看到新地址,并且搜索引擎能正确识别这是永久性或临时性的变更。

你需要根据你的服务器类型来配置。

Nginx 服务器

在 Nginx 的配置文件(通常是 nginx.conf 或网站配置文件)中添加以下代码:

301 永久重定向(推荐) 这告诉搜索引擎和浏览器,旧地址已永久性地变更为新地址,权重会完全传递过去。

server {
    listen 80;
    server_name www.old-site.com; # 旧域名
    # 将所有 HTTP 请求永久重定向到 HTTPS 的新域名
    return 301 https://www.your-new-site.com$request_uri;
}

302 临时重定向 如果只是暂时跳转,不确定未来是否还会用回旧域名,请使用 302。

server {
    listen 80;
    server_name www.old-site.com; # 旧域名
    # 临时重定向
    return 302 https://www.your-new-site.com$request_uri;
}

Apache 服务器

在 Apache 的配置文件(.htaccess)中添加以下代码。.htaccess 文件需要放在你网站的根目录下。

301 永久重定向(推荐)

# 开启重写引擎
RewriteEngine on
# 将所有请求重定向到新的域名
# %{HTTP_HOST} 匹配旧域名
# $1 是指从原始 URL 中捕获的路径部分,/about.html
RewriteRule ^(.*)$ https://www.your-new-site.com/$1 [L,R=301]

302 临时重定向 只需将 R=301 改为 R=302 即可。

RewriteRule ^(.*)$ https://www.your-new-site.com/$1 [L,R=302]

PHP 服务器端跳转

如果你的网站是用 PHP 编写的,可以在页面的最开始(在任何 HTML 输出之前)加入以下代码。

301 永久重定向(推荐)

<?php
// 确保在任何 HTML 或 echo 语句之前执行
header("Location: https://www.your-new-site.com", true, 301);
exit; // 停止当前脚本的执行
?>

302 临时重定向301 改为 302

<?php
header("Location: https://www.your-new-site.com", true, 302);
exit;
?>

服务器端跳转的优点

  • SEO 最佳实践:能正确传递网站权重和排名,搜索引擎能明确你的意图。
  • 用户体验好:无“闪屏”,地址栏直接变化。
  • 不依赖用户浏览器设置:无论 JS 是否开启,都能正常工作。

缺点

  • 需要服务器的管理权限,配置相对复杂。

总结与选择建议

方法 类型 SEO 影响 实现复杂度 推荐场景
JavaScript 前端 非常简单 临时页面、内网工具、不关心 SEO 的小项目。
Meta Refresh 前端 一般 非常简单 简单的临时跳转,如“网站维护中,即将恢复...”页面。
Nginx/Apache 后端 极佳 中等(需服务器权限) 域名更换、网站搬家、强制 HTTPS(最佳选择)
PHP/Node.js等 后端 极佳 简单(需服务器权限) 在动态网站代码中实现条件性跳转。

核心建议

  • 如果你要进行域名迁移或任何希望搜索引擎识别的永久性变更,请务必使用服务器端的 301 重定向(Nginx/Apache/PHP)。 这是行业标准,能最大程度保护你的网站 SEO 价值。
  • 如果你只是做一个临时的、非正式的跳转,或者没有服务器权限,可以使用 JavaScript 或 Meta Refresh 作为备选方案。 但要清楚它们的 SEO 缺陷。
分享:
扫描分享到社交APP
上一篇
下一篇