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

WordPress(OpenLiteSpeed) URL重写求助:美化下载页参数链接

WordPress + OpenLiteSpeed 伪静态URL重写修复方案

问题分析

你尝试的generate_rewrite_rules方法无效,核心原因有两点:

  • 未注册自定义查询变量key,WordPress会自动忽略未注册的URL参数
  • 未触发重写规则刷新,或OpenLiteSpeed缓存了旧规则导致新规则未生效

修复后的完整代码

// 注册自定义查询变量,让WordPress识别key参数
add_filter('query_vars', function($vars) {
    $vars[] = 'key';
    return $vars;
});

// 添加重写规则,匹配数字格式的key值
add_filter('generate_rewrite_rules', function($wp_rewrite) {
    $new_rule = [
        'preview-and-download/(\d+)/?$' => $wp_rewrite->index . '?key=$matches[1]'
    ];
    $wp_rewrite->rules = array_merge($new_rule, $wp_rewrite->rules);
});

必做生效操作

  • 刷新重写规则:登录WordPress后台,进入「设置」→「固定链接」,无需修改任何设置,直接点击「保存更改」,触发WordPress生成新的重写规则。
  • 清理OpenLiteSpeed缓存:如果服务器开启了缓存,进入主机面板或OpenLiteSpeed控制台,清理站点缓存与服务器缓存,确保新规则被加载。
  • 验证参数传递:在你的下载页面模板中,使用get_query_var('key')获取参数值,确认参数能正常传递到页面逻辑中。

更稳定的替代方法:使用官方add_rewrite_rule函数

WordPress官方推荐用add_rewrite_rule添加规则,比直接修改$wp_rewrite->rules更规范且不易冲突:

// 注册查询变量
add_filter('query_vars', function($vars) {
    $vars[] = 'key';
    return $vars;
});

// 初始化时添加重写规则,设置最高优先级
add_action('init', function() {
    add_rewrite_rule(
        '^preview-and-download/(\d+)/?$',
        'index.php?key=$matches[1]',
        'top'
    );
});

额外优化:旧URL301跳转(可选)

为避免重复内容,可添加规则将旧的带参数URL重定向到新的伪静态URL:

add_action('template_redirect', function() {
    if (isset($_GET['key']) && is_page('preview-and-download')) {
        $key = sanitize_text_field($_GET['key']);
        if (preg_match('/^\d+$/', $key)) {
            $new_url = home_url("/preview-and-download/{$key}/");
            wp_redirect($new_url, 301);
            exit;
        }
    }
});

内容的提问来源于stack exchange,提问作者Thanh Trần

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 09:30:57