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

WordPress add_rewrite_rule重定向错误:域名前多斜杠、后缀带[QSA,L]

问题原因

你错误地将重写规则的flag参数写入了add_rewrite_rule的第二个参数(目标地址位):

  • WordPress的add_rewrite_rule不会识别写在目标地址后的方括号内容,这部分内容会直接被拼接到跳转URL末尾,导致出现多余的[QSA,L]
  • 同时WordPress会默认给非标准内部重写路径前自动补全斜杠,导致域名前多出额外的/

解决方法

方法1:用template_redirect实现(更稳妥,无需刷新重写规则)

直接在请求处理阶段判断路径并跳转,不会触发重写规则的自动拼接逻辑:

add_action( 'template_redirect', 'mdv_custom_redirect' );
function mdv_custom_redirect() {
    if ( preg_match( '#^demo/(.+)$#', $_SERVER['REQUEST_URI'], $matches ) ) {
        $redirect_url = esc_url_raw( 'https://example.com/' . $matches[1] );
        wp_redirect( $redirect_url, 301 );
        exit;
    }
}

方法2:修正add_rewrite_rule参数写法

将flag参数放到函数的第三个参数位,第二个参数仅保留目标地址:

add_action( 'init', 'mdv_add_rule' );
function mdv_add_rule() {
    add_rewrite_rule( 'demo/(.+)$', 'https://example.com/$1', 'R=301,L' );
}

修改后需要进入WordPress后台「设置」-「固定链接」,直接点击「保存设置」,刷新重写规则缓存后生效。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 13:09:00