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

WordPress固定链接为kb的页面添加URL后缀时出现404错误求助

解决WordPress KB页面多级URL重写404问题

问题分析

你当前的重写规则仅匹配domain.com/kb/xxx这种单级子路径格式,无法覆盖domain.com/kb/84/92这类两级参数的URL,因此触发404错误。同时若未注册自定义查询变量,可能无法正常通过$_GET读取参数。

解决方案

1. 修改重写规则并注册查询变量

替换原有代码为以下内容:

function wdm_add_rewrite_rules() {
    // 注册自定义查询变量,让WordPress识别这两个参数
    add_rewrite_tag('%kb_cat%', '([^/]+)');
    add_rewrite_tag('%kb_seq%', '([^/]+)');
    
    // 匹配两级参数的URL格式:kb/xxx/xxx
    add_rewrite_rule(
        '^kb/([^/]+)/([^/]+)/?$',
        'index.php?pagename=kb&kb_cat=$matches[1]&kb_seq=$matches[2]',
        'top'
    );
    
    // 保留原有的单级参数匹配(可选,根据需求决定是否保留)
    add_rewrite_rule(
        '^kb/([^/]+)/?$',
        'index.php?pagename=kb&kb_cat=$matches[1]&kb_seq=1',
        'top'
    );
}
add_action('init', 'wdm_add_rewrite_rules');

2. 刷新重写规则

登录WordPress后台,进入设置 → 固定链接,无需修改任何设置,直接点击「保存更改」按钮,WordPress会自动刷新重写规则,确保新规则生效。

3. 获取参数

在KB页面的PHP脚本中,可通过两种方式获取参数:

  • 使用$_GET(需确保查询变量已注册):
    $kb_cat = isset($_GET['kb_cat']) ? $_GET['kb_cat'] : '';
    $kb_seq = isset($_GET['kb_seq']) ? $_GET['kb_seq'] : '';
    
  • 更推荐使用WordPress原生函数get_query_var():
    $kb_cat = get_query_var('kb_cat');
    $kb_seq = get_query_var('kb_seq');
    

注意事项

  • 确保固定链接设置不是「朴素」模式,否则重写规则无法生效。
  • 后续修改重写规则后,必须再次刷新固定链接设置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 22:55:16