最近总有人问我,网站要做重定向,到底怎么写才对。
其实这个问题得分情况看,不是一句两句能说清的。
我今天就把常见的几种情况,还有具体的操作步骤,都整理出来。
简单说,就是告诉浏览器和搜索引擎,某个页面已经换地方了。
用户访问老地址,会自动跳到新地址。
听起来简单,但用错类型,或者写错代码,问题就大了。
最直接的后果就是,新页面收不到老页面的权重,排名上不去。
这是你必须分清楚的,它俩对SEO的影响天差地别。
我画个表,你一看就明白。
| 类型 | HTTP状态码 | 搜索引擎理解 | 适用场景 |
|---|---|---|---|
| 301重定向 | 301 Moved Permanently | 永久性转移,老页面的权重和排名会传递给新页面 | 网站改版、域名更换、页面永久删除或合并 |
| 302重定向 | 302 Found (临时移动) | 临时性转移,权重不传递,搜索引擎仍收录原地址 | 短期活动、A/B测试、临时维护页面 |
记住一个原则:只要这个跳转是长期甚至永久的,就用301。
如果你只是临时把用户引到另一个页面,过几天还回来,那就用302。
用反了,要么传递不了权重,要么被搜索引擎惩罚。
知道了用哪种,下一步就是实施。
方法很多,我挑几个最常用的说。
大部分虚拟主机都支持这个。
你需要找到网站根目录下的 .htaccess 文件,用文本编辑器打开。
在里面添加规则。
301重定向单页,这么写:
整个目录跳转,这么写:
换域名,整个站跳转,这么写:
改完保存,上传覆盖原文件就行。
规则要写在 server 配置块里,通常是 nginx.conf 或 sites-available 里的某个配置文件。
单页或目录的301跳转:
整个域名跳转:
改完配置,记得测试并重载Nginx。
执行:nginx -t 测试语法,然后 service nginx reload 或 systemctl reload nginx。
有些情况下,你没权限动服务器。
比如用了某些SaaS建站平台。
这时候可以在页面里加元标签,或者用JavaScript跳转。
但这不是最佳实践,只能算替代方案。
HTML元标签刷新(相当于302):
JavaScript跳转:
这两种方式,搜索引擎爬虫可能不认,或者识别有延迟。
权重的传递效率远不如服务器端的301。
所以,只要有可能,优先去配置服务器。
说完怎么写,再说说容易踩的坑。
第一个大坑就是“重定向链条”。
比如页面A 跳转到 B,B 又跳转到 C。
链条越长,权重损耗越大,加载速度也越慢。
检查方法很简单,用浏览器开发者工具的网络面板,或者在线SEO工具查一下。
目标应该是:从旧URL一步到位,直接跳到最终的新URL。
第二个错误是,做完了重定向,没在老页面放新页面的链接。
理论上301已经够了,但为了保险,可以在老页面的内容里加个指向新地址的文本链接。
这对用户和爬虫都更友好。
第三个是批量重定向时,没做映射清单。
网站改版,往往有成百上千个页面要跳转。
你必须提前列一个Excel表,左边是老URL,右边是对应的新URL。
然后用规则(比如正则表达式)批量处理,或者让开发按表操作。
乱做一气,最后肯定有大量404错误。
代码写好了,配置文件也上传了,怎么验证?
我一般用这几个方法。
这些都通过了,基本就没什么问题。
剩下的就是等搜索引擎更新索引,这个过程可能需要几周到一个月。
期间持续观察Search Console里的覆盖率报告,别出现大量错误就行。
永久换地址,用301。
临时挪个窝,用302。
优先在服务器层面配置,Apache用.htaccess,Nginx改conf文件。
避免跳转链条,尽量一步到位。
批量操作前,做好URL映射表。
上线后,用工具检查状态码是否正确。
剩下的,就是交给时间,等权重慢慢传递过去。
本文由小艾于2026-04-28发表在爱普号,如有疑问,请联系我们。
本文链接:https://www.ipbcms.com/16520.html