nginx - 重写一个url参数并保留其他
问题描述
我们更改了推荐链接查询参数并希望保留以前版本的 url。在抽象的变化中,我需要那个
/example?id=partner1&arg1=a&arg2=b
/?id=partner1&arg1=a&arg2=b
改写为
/example?rs=partners_partner1&arg1=a&arg2=b
/?rs=partners_partner1&arg1=a&arg2=b
id=partner1 -> rs=partners_partner1
我们如何在 nginx 上做到这一点?
解决方案
这不能使用nginx 指令完成,因为它适用于不包含查询字符串rewrite
的所谓规范化URI。相反,您需要更改$args
nginx 内部变量:
if ($args ~ (^|.*&)id=([^&]*)($|&.*)) {
set $args $1rs=partners_$2$3;
}
将此块放在任何块之外location
。
推荐阅读
- javascript - 如何防止jquery加载已经存在的脚本
- angular - ng2 图表中的散点图
- php - 请求的未知数据库类型枚举,Doctrine\DBAL\Platforms\MySQL57Platform 可能不支持它。Symfony 4
- python - sklearn 错误 - 我已经填写了列的缺失值,但仍然面临以下错误
- javascript - 多维数组 - 递归 / Javascript 简介
- java - Spring 无法获取 JDBC 连接
- python - 使用 pandas 我们如何制作不同的文本组(来自 PDF 输出)并给他们特定的组 ID?
- meteor - 如何为我的应用程序目录提供正确的权限以运行 docker-compose up?
- cytoscape.js - 在 cytoscape 鼠标悬停时显示和隐藏节点信息
- php - 仅当 laravel 5.2 中的 status = '1' 时才登录用户