下面我将为你提供一份完整、详细的指南,涵盖原理、步骤、最佳实践和常见问题。

为什么必须使用301跳转?(核心原理)
在开始操作前,必须理解301跳转的重要性:
- SEO权重传递 (最重要的原因):搜索引擎(如Google、百度)会将老网站的“权重”或“信任度”几乎100%地传递给新网站,这有助于新网站在搜索引擎中更快地获得好的排名,如果你使用其他跳转方式(如302临时跳转),搜索引擎会认为这是临时行为,不会传递权重。
- 用户体验:老网站的访问者或收藏了旧链接的用户,点击或访问时会自动被带到新网站,不会遇到“404 页面未找到”的尴尬,体验流畅。
- 流量集中:所有来自老网站的流量都会被引导到新网站,确保流量的完整性。
- 避免重复内容:301跳转告诉搜索引擎,老网站和新网站的内容是同一个,从而避免因两个网站内容相似而被搜索引擎判定为“重复内容”,导致排名下降。
301跳转是互联网上公认的“永久搬家”标准操作。
如何执行301跳转?(详细步骤)
301跳转的实现方式取决于你的网站类型和服务器环境,这里介绍最主流的几种方法。
使用网站管理后台(最简单,推荐首选)
如果你的网站是使用主流CMS(如WordPress)搭建的,通常可以在后台设置中完成,无需修改代码。

以WordPress为例:
-
安装插件:在WordPress后台,进入“插件” -> “安装插件”,搜索并安装一个名为 “Redirection” 的插件,这是最常用、最可靠的跳转管理插件。
-
配置跳转:
- 安装并启用插件后,在左侧菜单中找到“工具” -> “Redirection”。
- 点击“Add New”(添加新)。
- Source URL (源URL): 输入你的老网站地址。
https://old-site.com/page-a - Target URL (目标URL): 输入对应的新网站地址。
https://new-site.com/blog/page-a - Group (分组): 可以选择一个已有的分组或新建一个,方便管理。
- Redirect (跳转类型): 确保选择的是
301(Permanent - 永久)。 - 点击“Add Redirect”按钮。
-
处理全站跳转:
(图片来源网络,侵删)- 如果你想让整个老网站都跳转到新网站首页,在“Source URL”中填入
old-site.com或https://old-site.com,在“Target URL”中填入你的新网站首页地址,如https://new-site.com。
- 如果你想让整个老网站都跳转到新网站首页,在“Source URL”中填入
优点:非常简单,可视化操作,无需懂代码,且可以管理复杂的跳转规则。 缺点:依赖插件,如果更换平台或插件失效,跳转会丢失。
通过服务器配置(最稳定、专业)
这种方法直接在服务器级别设置,性能最好,最稳定,如果你有服务器的管理权限,这是推荐的方法。
A. Apache服务器
在Apache的配置文件中(通常是 httpd.conf 或 vhosts.conf 文件),或者在网站的 .htaccess 文件中添加以下代码:
场景1:整个域名跳转到新域名(推荐)
# 将 old-site.com 的所有请求 (带www和不带www) 重定向到 new-site.com
RewriteEngine On
RewriteCond %{HTTP_HOST} ^old-site.com [NC,OR]
RewriteCond %{HTTP_HOST} ^www.old-site.com [NC]
RewriteRule ^(.*)$ https://new-site.com/$1 [L,R=301]
场景2:将带www的域名跳转到不带www的域名
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.old-site.com [NC]
RewriteRule ^(.*)$ https://old-site.com/$1 [L,R=301]
场景3:将某个目录或页面跳转到新站
# 将 old-site.com/blog/ 目录下的所有内容跳转到 new-site.com/news/ RewriteEngine On RewriteRule ^blog/(.*)$ https://new-site.com/news/$1 [L,R=301]
B. Nginx服务器
在Nginx的配置文件中(通常是 server 块内),添加以下代码:
场景1:整个域名跳转到新域名
# 将 old-site.com 的所有请求重定向到 new-site.com
server {
listen 80;
server_name old-site.com www.old-site.com;
# 将HTTP请求强制跳转到HTTPS
return 301 https://new-site.com$request_uri;
}
# 如果需要处理HTTPS
server {
listen 443 ssl;
server_name old-site.com www.old-site.com;
ssl_certificate /path/to/your/cert.pem;
ssl_certificate_key /path/to/your/private.key;
return 301 https://new-site.com$request_uri;
}
场景2:将带www的域名跳转到不带www的域名
server {
listen 80;
server_name www.old-site.com;
return 301 http://old-site.com$request_uri;
}
server {
listen 443 ssl;
server_name www.old-site.com;
ssl_certificate /path/to/your/cert.pem;
ssl_certificate_key /path/to/your/private.key;
return 301 https://old-site.com$request_uri;
}
注意:修改Nginx配置后,需要执行 nginx -s reload 命令让配置生效。
通过云服务商控制台(如阿里云、腾讯云、AWS)
如果你使用的是云服务器,通常可以在其负载均衡或Web应用防火墙产品中配置转发规则。
以阿里云为例:
- 登录阿里云控制台,进入“负载均衡”SLB产品。
- 选择你的SLB实例,进入“监听”配置。
- 找到对应的HTTP或HTTPS监听规则,在“转发配置”中,可以设置“高级转发规则”。
- 添加一个规则,将
old-site.com的请求转发到new-site.com,并选择“返回301重定向”。
这种方法的好处是配置与服务器解耦,更换服务器IP不影响跳转规则。
最佳实践与注意事项
-
备份!备份!备份! 在修改任何服务器配置文件(如
.htaccess,httpd.conf,nginx.conf)之前,务必备份原始文件,万一配置错误,你的网站可能无法访问。 -
测试!测试!测试!
- 使用浏览器:在浏览器中输入老网站的URL,检查是否正确跳转到新网站,并且地址栏显示的是新网站的URL。
- 使用在线工具:使用在线301重定向检测工具(如 Redirect Checker)来验证你的跳转是否正确设置。
-
保持协议一致性 确保跳转时使用的协议(
http或https)是正确的,最佳实践是强制使用https,上面的示例代码中已经包含了强制跳转HTTPS的逻辑。 -
处理带www和不带www的域名 确定你的主域名是带www还是不带www,然后将另一个版本通过301跳转到主域名,避免权重分散,将
www.old-site.com和old-site.com都统一跳转到https://new-site.com。 -
逐条或分批进行 如果你的网站非常大,有成千上万个页面,一次性设置所有301跳转可能会给服务器带来压力,可以考虑先设置全站跳转,然后逐步优化重要页面的跳转。
-
更新外部链接 虽然301跳转可以处理大部分流量,但最好能联系一些重要的外部链接(如合作伙伴、媒体网站)的站长,请求他们更新链接指向你的新网站,这能更快地传递权重,并减少不必要的跳转。
-
更新内部链接和资源引用 登录你的新网站后台,检查并更新所有指向老网站内部链接的图片、CSS、JS文件等,确保新网站本身是“干净”的,没有指向旧站的死链。
FAQ(常见问题)
Q: 301跳转生效需要多长时间? A: 通常很快,几分钟到几小时不等,但搜索引擎(尤其是Google)完全识别并传递所有权重可能需要数周甚至数月,这是一个持续的过程。
Q: 我有1000个页面要跳转,需要写1000条规则吗? A: 不一定,如果新网站的URL结构和老网站保持一致(只是域名变了),你只需要一条“全站跳
