You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写Rewrite rule移除Wordpress全数字URL slug末尾的-2

WordPress纯数字slug去-2重写规则配置

Apache服务器(.htaccess配置)

规则需要放在WordPress自动生成的# BEGIN WordPress代码块之前,避免后续WordPress更新规则时被覆盖:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /woensdag-callerid/wordpress/
# 匹配末尾带-2的纯数字路径
RewriteRule ^([0-9]+)-2$ $1 [L,R=301]
</IfModule>

规则说明:

  • ^([0-9]+)-2$ 正则匹配仅由数字组成、末尾带-2的路径段,捕获纯数字部分作为参数
  • $1 将请求重写到捕获到的纯数字地址
  • [L,R=301] 标识当前为最后一条匹配规则,使用301永久重定向,符合SEO规范

Nginx服务器配置

规则需要写入对应站点的server配置块中,修改完成后执行nginx -s reload重载配置生效:

location ~ ^/woensdag-callerid/wordpress/([0-9]+)-2$ {
    return 301 /woensdag-callerid/wordpress/$1;
}

补充:解决重定向后404问题

如果重定向后访问纯数字slug返回404,可在当前主题的functions.php文件中添加如下代码,让WordPress直接解析纯数字路径为对应ID的文章:

add_action('parse_request', function($wp) {
    if (preg_match('/^([0-9]+)$/', $wp->request, $matches)) {
        $wp->query_vars['p'] = $matches[1];
        $wp->query_vars['post_type'] = 'post'; // 若为自定义文章类型可修改此处值
    }
});

内容的提问来源于stack exchange,提问作者user17418530

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 08:24:04