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

如何使用Nginx rewrite重写指定URL参数名且不影响其他参数

Nginx URL参数名重写解决方案

以下配置可以实现仅替换参数名my_arg为my-arg,不改动其他参数、不受参数数量和位置影响:

if ($args ~ ^(.*)my_arg=(.*)$) {
    # 替换参数名,拼接得到初步修改后的参数串
    set $modified_args $1my-arg=$2;

    # 清理参数开头多余的&符号
    if ($modified_args ~ ^&(.*)) {
        set $modified_args $1;
    }

    # 清理参数中间可能出现的连续&符号
    if ($modified_args ~ (.*)&&(.*)) {
        set $modified_args $1&$2;
    }

    # 执行重写:保留原请求路径,仅替换参数,末尾?用于阻止Nginx自动追加原有参数
    rewrite ^ $uri?$modified_args? break;
}

配置说明

  • 如果需要让浏览器地址栏同步显示修改后的参数(外部重定向),把break替换为redirect(302临时重定向)或permanent(301永久重定向)即可
  • 配置兼容my_arg出现在参数列表任意位置的场景:开头、中间、结尾
  • rewrite规则末尾的第二个?是核心配置,作用是清空Nginx默认要追加的原始参数,避免参数重复

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 19:36:01