网站301重定向权重传递配置全攻略(零基础版)
网站改域名、切换HTTPS或合并多个站点时,301重定向是保证原有权重不丢失的关键手段。
很多新手担心操作复杂导致权重丢失或网站报错,其实只要按步骤来,几分钟就能搞定。
本文从零开始,帮你完整走一遍配置流程。
先搞清楚:哪些场景必须做301权重传递
301重定向告诉搜索引擎“这个页面已经永久搬迁到新地址”,原链接的权重、排名会逐步转移给新链接。
以下三种情况必须配置:
- 更换域名:旧域名废弃,所有流量跳转新域名。
- HTTP升级HTTPS:强制用户访问带证书的加密版本。
- 合并/整理URL:比如将多个子站内容合并到一个主站,需要将旧文章301到新文章。
注意:302临时重定向不会传递权重,所以一定要用301。
动手前需要准备的东西
- 服务器SSH权限:用来编辑配置文件。如果你用的是宝塔面板,可以直接在后台操作。
- 网站完整备份:修改配置文件前务必备份,万一写错可以快速恢复。
- 新站点已正确解析:确保新域名已经解析到服务器,且网站能正常访问。
- 确认服务器环境:Nginx还是Apache?本文以最常见的Nginx为例,宝塔面板用户也适用。
实操:Nginx下配置301重定向(两种写法)
进入Nginx站点配置文件所在目录(通常为/etc/nginx/sites-available/或/www/server/panel/vhost/nginx/),
找到你要配置的站点配置文件,
用编辑器(如vim或nano)打开。
写法一:将旧域名301到新域名(最常用)
假设旧域名为 old.com,新域名为 new.com,在server块中添加:
server {
listen 80;
server_name old.com www.old.com;
return 301 https://www.new.com$request_uri;
}
说明:凡是访问旧域名80端口的请求,全部301到新域名对应的路径。$request_uri保留原路径,例如 old.com/page1 跳转到 new.com/page1。
写法二:HTTP强制跳转到HTTPS(同域名)
如果你只是从HTTP转到同一域名的HTTPS:
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$server_name$request_uri;
}
保存并重载Nginx
nginx -t # 测试配置语法
systemctl reload nginx # 或者 service nginx reload
如果语法测试报错,回看配置文件里是否有拼写错误或缺少分号。
宝塔面板用户:三步完成
如果你在用宝塔面板,可以完全绕过命令行:
- 进入宝塔后台 → 网站 → 点击对应网站后的“设置”。
- 选择“伪静态”选项卡,下拉选择“301重定向”规则(宝塔内置了通用模板)。
- 在弹出的设置窗口中填入旧域名和新域名,点击“保存”。系统会自动生成正确的跳转规则。
宝塔的伪静态规则本质也是修改Nginx配置文件,但由面板自动管理,不易出错。
避坑指南:这些错误最容易踩
- 重定向循环:比如A域名跳B域名,B又跳回A,浏览器会报“重定向过多”。解决方案:检查server块里是否写了多次return,以及域名解析是否直指服务器。
- 忘记保留路径:上面代码中的
$request_uri不能漏,否则所有页面都会跳转到首页,不仅影响用户体验,权重也无法逐页传递。 - 只配置了80端口:如果你的HTTPS站点也需要做301(比如从旧HTTPS域名跳到新HTTPS域名),不要忘记同时配置443端口的server块。
- 测试时用浏览器清空缓存:浏览器可能会缓存302或301结果,导致你看到旧跳转。建议用隐身模式或curl命令测试。
验证301是否生效(附命令)
配置完成后,至少要用以下两种方式验证:
- 使用curl命令检查状态码:
curl -I http://old.com # 或者 http://example.com/page1
输出中第一行应显示 HTTP/1.1 301 Moved Permanently,并且Location头指向正确的新地址。
- 浏览器开发者工具:打开Chrome开发者工具 → Network,勾选“Preserve log”,然后访问旧链接。查看第一个请求的状态码是否为301,以及Response Headers里的Location是否正确。
- 使用在线SEO检查工具:如站长工具的“301检测”功能,输入旧链接即可看到重定向链。
如果一切正常,权重传递配置就完成了。
下一步搜索引擎需要一段时间(几个星期)才能完全转移权重,请保持两个站点都能访问,不要删除旧站点文件。
如果你在操作中遇到其他报错,比如502或500,先回看Nginx配置语法是否正确,再检查新站点是否正常开启。
建议从简单的单条规则开始测试,确认无误后再添加更多跳转。