301这东西吧,看着不起眼,配错了能坑死你。我见过一个站长换域名,图省事用了302跳转,结果半年过去,新域名排名起不来,旧域名的权重也没转移过去,两头都耽误了。今天就把301那点事儿给你讲透:它是啥、咋配、有哪些坑,一篇说全,你照着配就不会出错。

先整明白:为啥必须用301而不是302
301是永久重定向,告诉浏览器和搜索引擎:这个地址永久搬家了,以后别来这儿了,去新地址。搜索引擎收到301,会把旧页面的权重和信任传给新页面,再把索引更新过去。302是临时跳转,意思是暂时去那儿,权重不转移。所以换域名、统一主域名这种永久性变更,必须用301;302只适合临时活动页这种场景。用错状态码,等于白搬家,这坑特别多新手踩。
最常见的场景:HTTP跳HTTPS
现在基本都上HTTPS了,没上的都在路上。HTTP流量要全部转到HTTPS,Nginx里就在80端口的server块里加一句跳转:return 301 https://你的域名$request_uri;。注意那个$request_uri,它会把用户访问的路径和参数原样带过去,少了它,所有页面都会跳回首页,这是配置里最高频的错误,我修过不知道多少回了。
开了HTTPS之后,建议顺手把HSTS也加上,就是让浏览器记住以后直接用HTTPS访问,连HTTP那一次请求都省了。不过HSTS加之前想清楚,加错了想撤回来麻烦,得等它过期,新手可以先不加,等熟练了再说。
统一域名:www和不带www选一个
同一套网站,www和不带www都能访问,这在搜索引擎眼里就是两个站,内容重复,权重被摊薄。解决办法就是二选一,把另一个301过去。比如主域名用www,那就把不带www的整站跳过去:在443的server块里,server_name写不带www的域名,里面return 301到带www的地址。选哪个当主域名没有标准答案,看你自己习惯,关键是全站统一,别今天跳这个明天跳那个,搜索引擎都被你搞懵。
网站改版,旧链接咋办
改版之后URL结构变了,以前收藏的、外链引用的旧地址全都会404,白白流失流量和权重。正确做法是把旧地址301到对应的新地址:页面少的,一条一条配;页面多的,按目录或者按规律写跳转规则。实在没有对应的新页面,就把旧地址统一跳到新站首页或者相关栏目,别让它直接404。改版前先列个旧URL对照表,改版时新旧并行跑几天,确认跳转都正常再慢慢收尾。
配完怎么验,别配了个寂寞
配置完了一定要验证:用curl -I去请求旧地址,看返回的状态码是不是301,Location是不是你要跳的新地址。curl -I http://旧地址 一下就看出来了。还要检查别跳成循环——A跳B,B又跳回A,那就是死循环,用户永远打不开。这些验证花不了两分钟,但能省掉后面一堆麻烦。
套了CDN之后,跳转要在哪层配
现在不少站都套了CDN,这时候301的配置位置就讲究了。原则上源站要配好跳转,不然回源的时候拿不到正确状态;但如果CDN支持配置跳转规则,优先在CDN那层做,因为跳转发生在离用户最近的节点,少一次回源,速度更快,还能顺带做HTTPS的强制跳转。记得两边规则要一致,别源站跳A、CDN跳B,用户都不知道该去哪。
还有个经验:套了CDN之后,旧的跳转配置有时候会“看起来失效”,其实是CDN缓存了旧响应。改完规则去CDN控制台刷新一下缓存,再curl验证,就不会被缓存骗了。我给人排查的时候,这种缓存乌龙遇见过好几回。
几个容易忽略的细节
换了域名,新站得先上线再切跳转,别让用户访问新站的时候正好赶上空窗期。跳转的目标要确保能正常访问,别跳过去还是个坏的。另外记得把网站地图、后台里的站点地址都改成新域名,内链也要更新,不然站内还有一堆老链接在跳来跳去。301配好之后,剩下的交给时间,搜索引擎会慢慢把索引和权重都搬过去,一般几天到几周,别天天刷排名干着急。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!