WordPress已发布文章预览链接无法访问,重定向无效求助
已发布文章预览链接无法访问的解决办法
问题本质:带
preview_id、preview_nonce的预览链接是草稿专属的访问链路,哪怕文章已经设为公开,WordPress仍会校验该链接的权限有效性,普通用户访问必然触发拦截,也就是你看到的提示:抱歉,你无权预览草稿。可行解决办法:
- 通过.htaccess设置永久重定向
找到网站根目录的.htaccess文件,添加以下规则,将旧预览链接直接跳转到文章正式地址:
注意把RewriteEngine On RewriteCond %{QUERY_STRING} preview_id=14285&preview_nonce=d402403197&preview=true RewriteRule ^videos/?$ /videos/你的文章别名/ [L,R=301]你的文章别名替换为文章实际的slug,301是永久重定向,能让用户和搜索引擎自动跳转至正确页面。 - 在主题代码中添加拦截跳转
打开主题的functions.php文件,插入以下代码,系统检测到旧预览参数时自动跳转:
这段代码会在页面加载前校验参数,匹配成功后直接跳转到文章正式链接。add_action('template_redirect', 'redirect_old_preview'); function redirect_old_preview() { if (isset($_GET['preview_id']) && $_GET['preview_id'] == '14285' && isset($_GET['preview_nonce']) && $_GET['preview_nonce'] == 'd402403197') { wp_redirect(get_permalink(14285), 301); exit; } } - 修改已发送邮件(若支持)
如果你的邮件平台允许撤回或修改已发送邮件,直接将预览链接替换为文章正式地址,这是最直接的处理方式。
- 通过.htaccess设置永久重定向
之前重定向失败的可能原因:
要么是重定向规则未精准匹配所有参数,要么是规则放置在WordPress默认规则之后,导致未触发生效。
内容的提问来源于stack exchange,提问作者BAI
相关产品推荐
相关产品推荐

