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

WordPress配置分页rewrite rule后出现原始URL后缀重复如何解决

问题原因

你目前只配置了「让WordPress识别seite-x格式的分页URL」的入站解析规则,缺失了三项核心配置:

  1. 没有拦截WordPress默认的规范URL重定向逻辑:WordPress核心自带的redirect_canonical机制会自动将它识别为“非标准”的分页路径,重定向到默认带/page/x后缀的格式,最终就出现了两个分页后缀拼接的问题
  2. 现有重写规则的正则匹配有缺陷:([0-9])仅能匹配1-9的单数字分页,超过第9页的内容无法正常识别
  3. 没有修改WordPress生成分页链接的默认逻辑,即便访问正常,WP输出的分页链接还是会自带默认/page/x后缀

完整修复配置

把你现有配置替换成以下代码,添加到主题functions.php或者自定义插件中即可:

// 1. 注册自定义分页重写规则
add_action('init', function () {
    // 修正正则匹配多位数分页,末尾加$匹配路径结束,避免被其他规则追加内容
    add_rewrite_rule(
        '([^/]+)/seite-([0-9]+)$',
        'index.php?taxonomy=rubrik&term=$matches[1]&post_type=beitrag&paged=$matches[2]',
        'top'
    );
});

// 2. 拦截默认的规范重定向,避免自定义分页URL被拼接默认/page后缀
add_filter('redirect_canonical', function ($redirect_url, $requested_url) {
    // 当是rubrik分类法+beitrag文章类型的分页请求时,取消默认重定向
    if (get_query_var('taxonomy') === 'rubrik' && get_query_var('post_type') === 'beitrag' && get_query_var('paged') > 0) {
        return false;
    }
    return $redirect_url;
}, 10, 2);

// 3. 修改该类存档的分页链接输出格式,直接生成seite-x格式的链接
add_filter('paginate_links', function ($link) {
    global $wp_query;
    if (is_tax('rubrik') && get_query_var('post_type') === 'beitrag') {
        // 把默认的/page/(\d+)替换成seite-$1
        $link = preg_replace('#/page/([0-9]+)#i', '/seite-$1', $link);
    }
    return $link;
});

配置完成后记得进入WordPress后台「设置 - 固定链接」,点击保存(不需要修改内容)刷新重写规则缓存即可生效。


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

相关产品推荐
方舟 Agent Plan

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

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