网站改版、更换域名或整理URL结构时,旧链接如果不做任何处理,积累的流量和搜索排名就会逐渐流失。301跳转通过HTTP协议中的"永久移动"状态码,让服务器自动把用户和搜索引擎从旧地址引导至新地址,同时将旧页面积累的权重转移给新页面。把301跳转配置到位,是网站平稳过渡、保住既有搜索表现的关键一步。
301是HTTP协议中的"永久重定向"状态码。当服务器收到对旧URL的请求时,会在响应头中返回这一状态码,并附带新URL的地址。浏览器收到响应后会自动跳转,并把结果缓存下来,日后再访问旧地址时就会直接请求新页面。对搜索引擎而言,301会触发权重合并机制,爬虫会把旧页面的收录信息和排名信号合并到新页面上。
常见的适用情况包括:启用全新域名、多个域名归并到同一主站、删除低质量或重复内容、将HTTP升级到HTTPS、把带参数的动态URL改写为简洁的静态地址。需要特别注意的是,如果页面只是为活动或促销短暂下线,或者临时更换地址,应该使用302临时跳转。误用301会把"永久迁移"的信号传给搜索引擎,权重发生不可逆的转移,之后想恢复就很麻烦。
Apache服务器最常用的配置方式是在站点根目录下的.htaccess文件中编写规则。修改保存后,规则一般会即时生效,无需重启服务进程,适合快速部署和调试。
如果只需迁移个别页面,在.htaccess文件中添加一行指令即可完成:
Redirect 301 /old-page.html https://www.example.com/new-page.html
编写时需要注意:旧路径只写站点根目录以下的相对路径,以斜杠开头,不要包含域名;路径必须和服务器实际文件结构准确对应,大小写差异会导致跳转失效;每个规则独占一行,避免多条指令互相干扰。正式上线前,建议先拿一个访问量较小的页面做测试,确认跳转行为符合预期后再全面推广。
当涉及多个路径整体迁移时,RewriteRule能提供更高的灵活性。例如,将旧域名下所有请求重定向到新域名的相同路径:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^old-domain\.com$ [NC]
RewriteRule ^(.*)$ https://www.new-domain.com/$1 [R=301,L]
这套规则的作用是保持请求路径结构不变,只替换掉域名部分。如果你对正则表达式不太熟悉,建议先从简单的匹配规则入手,在备份服务器或本地环境先行验证,避免规则写错导致整站无法访问。
Nginx的配置语法与Apache差异明显,修改配置文件后必须执行重载操作才能生效,常用命令为:nginx -s reload。
在站点对应的server配置块中,使用rewrite指令就能完成单页重定向:
rewrite ^/old-page.html$ https://www.example.com/new-page.html permanent;
末尾的permanent参数表示这是301永久跳转。如果漏写这个参数,Nginx会默认采用302临时跳转,搜索引擎就不会把权重转移给新页面,这一点很容易被忽视。
如果需要将整个旧域名下的所有地址重定向到新域名,可以在旧域名的server块中这样配置:
server {
listen 80;
server_name old-domain.com www.old-domain.com;
return 301 https://www.new-domain.com$request_uri;
}
这里用return指令配合$request_uri变量,能把原始请求的完整路径原样保留并拼接到新域名后。校验配置时,建议执行nginx -t检查语法是否正确,确认无误后再执行重载。相比之下,return指令比rewrite更简洁高效,推荐优先使用。
很多人在配置过程中容易踩进一些坑,提前了解能避免走弯路。
跳转规则写好后,不能只看页面能正常打开就算完成,还需要做几项细致检查:
验证周期建议持续一到两周,因为搜索引擎爬虫有自身的抓取频率,短期内可能不会立即重新收录新地址。
这个时间没有固定标准,通常需要几天到几周不等。搜索引擎需要重新抓取旧地址、识别301响应、再抓取新地址并更新索引。期间如果旧地址出现多次跳转或响应缓慢,转移过程会延长。建议配置完成后,持续关注站长工具中的抓取报告,确认爬虫已经顺利访问了新旧地址。
可以的。外链指向旧URL时,搜索引擎通过301会把这个链接受到的权重信号合并到新页面上。这也是网站更换域名后,能最大限度保留搜索排名的原因。但需要留意,并非所有权重都能100%转移,跳转规则正确、新页面内容与原页面高度一致,转移效果才更理想。如果新页面内容差异太大,搜索引擎可能重新评估页面的相关性。
不建议。JS跳转和meta refresh属于客户端跳转,搜索引擎虽然有时能识别,但处理方式远不如301可靠。这两种方式的跳转对方都有延迟,搜索引擎爬虫执行JS的能力有限,很可能直接放弃抓取。只有服务器端返回的301状态码才是官方认可的永久迁移信号,能确保搜索引擎正确处理权重转移。所以务必在服务器层面配置301,而不是依赖前端脚本。
301跳转是网站改版和域名迁移时最可靠的工具,但正确配置只是第一步。真正重要的是理解它的工作原理,避开常见的误区,并在上线后持续验证。建议你在动手配置前,先梳理一份完整的旧URL到新URL的映射表,按优先级分批上线;每次修改养成先测试后推广的习惯,确保线上环境万无一失。这样操作,网站改版带来的流量波动就能控制在最小范围。假如你正在规划迁移,不妨把这篇文章保存下来,配置时对照检查,能少走不少弯路。