适用人群
专治以下症状:

WordPress重定向插件?别瞎折腾了!老司机带你一步到位(附踩坑大全)
- 网站从HTTP换到HTTPS,结果一堆旧链接打不开,用户骂娘
- 改了固定链接结构(比如从
/p=123换成/post-name/),搜索引擎哭晕在厕所 - 删除了某篇文章,不想让访客看到404页面,想无缝跳转到相关页面
- 合并了多个子站或换了域名,需要批量做301跳转
- 用插件迁移网站后,链接全乱套,你自己都不知道哪个文件在哪儿
如果你中了一条以上,恭喜你,今天这碗“药”你喝定了,不管你是刚摸WordPress三天的新手,还是捣鼓了半年依然被重定向搞疯的中级用户,跟着我的步骤走,保证你的网站链接干干净净,SEO不掉分。
完整搭建步骤(别跳过,少一步都出幺蛾子)
第一步:备份!备份!备份!
别跟我说你懒得动,备份插件的安装时间绝对比你后面修复烂摊子的时间少一百倍。
推荐用UpdraftPlus或All-in-One WP Migration,数据库和文件一起打包,我见过太多人嫌麻烦,结果重定向规则写错,整个站直接陷入无限循环,连后台都进不去,到时候你只能跪求FTP或phpMyAdmin,动手前先备份,这是老司机的底线。
第二步:安装重定向插件
别瞎选乱七八糟的,就用 Redirection(免费、开源、更新勤快,作者Mark Jaquith是WordPress核心贡献者)。
- 进后台 → 插件 → 安装插件 → 搜索“Redirection” → 安装并启用。
- 启用后,左侧菜单会出现“重定向”选项,点击进去,你会看到它的管理界面,别被密密麻麻的选项吓住,老子帮你捋清楚。
第三步:首次设置(配置要点)
点击“重定向”菜单后,第一件事不是急着添加规则,而是清空默认预设。
- 在“设置”选项卡里,把“默认保留查询参数”关掉(除非你明确需要)。
- 开启404日志(重要!)——这样你才知道哪些链接是死的,哪些是需要重定向的。
- 正则表达式模式先别勾,新手用普通模式就够了,等你能分清和的区别再玩正则。
第四步:添加你的第一个重定向(手把手教学)
现在回到“重定向”选项卡,点击“添加重定向”。
- 源URL:输入旧链接的相对路径,比如你的旧文章链接是
https://olddomain.com/about-us/,就填/about-us/(不要带域名)。 - 目标URL:输入新链接的完整地址,例如
https://newdomain.com/company/,或者相对于根目录的路径。
注意:如果是站内跳转,用相对路径也行,但保险起见我建议一律写完整URL(包括https),避免协议不同导致的二次重定向。 - 匹配类型:新手选“URL和查询参数”或“精确匹配”,别手贱选正则。
- 动作:默认“重定向到URL”,状态码选301(永久重定向),除非你只是临时测试,否则别用302,搜索引擎会把302当成临时跳转,权重传递打折扣。
- 点击“添加重定向”,规则立即生效,你可以点击旁边的“测试”按钮,输入源URL看是否成功跳转。
第五步:批量导入/导出(适合搬家)
如果你要处理几十上百条链接,一条条手输会疯,Redirection支持CSV导入:
- 准备一个Excel文件,第一列放源URL(相对路径),第二列放目标URL(完整或相对)。
- 在Redirection的“导入/导出”选项卡里上传CSV,选“忽略重复”。
- 导入后记得检查规则列表,万一有格式错误,插件会提示哪一行有问题。
配置要点(直接影响成败)
必须搞清楚的“匹配类型”
- 精确匹配:源URL必须完全一致(包括大小写和尾部斜杠),如果你
/about和/about/都想要跳转,需要写两条规则。 - 正则匹配:强大但也危险,例如
^/old-post-(.*)/可以匹配任何以/old-post-开头的链接,然后把$1传给目标URL,新手慎用,因为一个正则写错可能匹配到无辜的页面。 - 忽略查询参数:如果你只关心路径,不关心
?id=123这种参数,选这个,否则/page?id=1和/page?id=2会被视为两条不同的源URL。
尾部斜杠强迫症
WordPress默认URL结尾有无斜杠会引发双重重定向(比如/about先301到/about/,然后插件再跳到目标)。
解决办法:在Redirection中添加规则时,源URL最好和你旧站实际使用的格式一致,如果旧站有斜杠就写斜杠,没有就不写,另外可以在设置里打开“移除尾部斜杠”勾选,但需要测试是否影响其他插件。
监控404日志
安装插件后,建议每周去“重定向” → “404日志”看一眼,你会发现很多你根本没想到的死链:比如第三方网站错误引用了你以前的图片路径,或者某个内链写错了,看到404后,立刻添加对应的重定向,既留住访客,也保住权重。
常见踩坑提醒(血泪教训)
坑1:无限重定向循环(浏览器显示“此网页无法正常运作”)
原因:你写了A→B的规则,但B本身又被插件或服务器强制跳转回A,比如你做了/old/ → /new/,但/new/内部因为其他插件又跳到/old/,或者你忘了把源URL从目标URL中排除——例如你试图把/category/目录下的所有文章重定向到新分类,但误写了/category/.*匹配了整个分类页,导致访问分类页本身也被重定向。
解决办法:遇到循环别慌,立刻关掉浏览器缓存,或者用无痕模式测试,如果后台进不去,用FTP禁用Redirection插件(在/wp-content/plugins/目录下把redirection文件夹重命名),然后重新修改规则,所以备份真的重要!
坑2:忽略HTTPS与HTTP的区别
很多新手只写了http://old.com/page重定向到https://new.com/page,但忘了处理https://old.com/page这个版本,导致用户从HTTPS的旧链接访问时,依然看到404。
正确做法:在源URL中,不需要写协议,因为Redirection只匹配路径,但服务器层面如果同时监听HTTP和HTTPS,你可能还需要在.htaccess中做额外的强制HTTPS跳转,通用方案:先用服务器规则把所有HTTP请求301到HTTPS,再让Redirection处理路径级别的跳转。
坑3:插件冲突(特别是缓存和SEO插件)
- 与WP Super Cache / W3 Total Cache等缓存插件冲突:缓存了旧的重定向规则,导致你更新后用户依然看到旧跳转。
解决:修改重定向规则后,务必到缓存插件里清空所有缓存(不要只清页面缓存,可能还需要清对象缓存)。 - 与Yoast SEO / Rank Math等SEO插件冲突:Yoast可能会生成它自己的重定向或规范URL,与Redirection打架。
解决:在Yoast设置中关闭“重定向附件”功能,并且确保Redirection规则优先级高于Yoast(一般没问题),如果不确定,可以暂时禁用SEO插件的重定向功能。
坑4:多语言站点(WPML/Polylang)的坑
如果你用了多语言插件,源URL路径可能包含语言代码(如/zh/about/),在Redirection中写规则时,最好用正则匹配语言前缀,否则写/about/可能匹配不到/zh/about/。
建议:在添加重定向时,先从404日志复制原始请求链接,然后用它作为源URL,不要自己脑补。
坑5:服务器层面的强制跳转
有些主机或CDN(如Cloudflare)会自动添加301重定向,比如强制HTTPS、添加www前缀等,这些规则在Redirection之前执行,如果你在Redirection中写了/old/ → /new/,但服务器先把/old/强制跳到了https://www.old.com/old/,那么Redirection的规则根本不会触发。
解决办法:先检查.htaccess文件(如果有),或者联系主机商确认服务器级规则,理想顺序是:服务器规则(HTTPS/www)→ Redirection插件 → 正常页面输出,如果顺序反了,你可能需要把服务器规则也写在Redirection中(但这样复杂),或者调整.htaccess的RewriteRule顺序。
最后一句话
重定向这事儿,成也细节,败也细节,别以为配完了就完事,一定要用浏览器的开发者工具(F12 → Network)逐个验证旧链接是否返回301状态码,以及跳转后的URL是否正确,如果有时间,再用在线工具如redirectcheck.com跑一遍全站扫描,确保没有中断链或循环。
对了,随时备份规则列表,Redirection支持导出JSON,每个月导出一次,放进云盘,谁知道哪天插件崩了或者你手滑删了所有规则呢?老司机不翻车,是因为随时带着备胎。
发表评论