核心概念:跳转的两种主要方式
- 前端跳转:在用户的浏览器上执行一段脚本(通常是JavaScript)来完成跳转,用户会先看到原始网站,然后页面会“闪”一下,跳转到新网站。
- 后端跳转:在网站服务器端完成跳转,服务器在发送网页内容之前,就告诉浏览器:“请访问另一个地址”,用户几乎感觉不到这个过程,地址栏会直接变成新地址。
JavaScript 前端跳转(最简单)
这是最直接、最容易实现的方法,只需在原网站的 HTML 页面中插入一段代码即可。

立即跳转(不延迟)
在 <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 文件。
- 不需要服务器权限。
缺点:

- 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 缺陷。
