【问题标题】:nginx rewrite: rewrite and pass original URI arguments alongnginx rewrite:重写并传递原始 URI 参数
【发布时间】:2019-09-02 21:10:41
【问题描述】:

我只是想重写:

https://example.com/id/123?a=1&b=2 (可能还有更多变量,也可能没有)

https://example.com/load.php?id=123&a=1&b=2 (......以及其他任何东西,或者id之后可能没有)

就是这样。很简单吧?

但我认为有一条不成文的秘密规则规定,用于 nginx URL 重写的文档必须密集、不清楚,并且没有任何有用的示例。 ;-) 我已经用谷歌搜索并尝试了一段时间。飞不起来。

我尝试了这个,以及它的几个变体,但没有运气: rewrite ^/id/(.*)$ /load.php?id=$1&$args last;

我想我已经接近了。你能帮忙吗?

【问题讨论】:

  • 其余参数会自动附加。试试看:rewrite ^/id/(.*)$ /load.php?id=$1 last;
  • 它没有工作,现在它是 --- 疯了。谢谢你。如果您想将此评论添加为答案,我很乐意接受。

标签: nginx url-rewriting


【解决方案1】:

rewrite 指令自动附加原始参数(根据需要添加?& 分隔符),除非替换字符串以? 结尾。

例如:

rewrite ^/id/(.*)$ /load.php?id=$1 last;

以上内容将在内部将/id/123?x=abc 重定向到/load.php?id=123&x=abc

详情请见this document

【讨论】:

    猜你喜欢
    • 2022-01-21
    • 2021-12-17
    • 1970-01-01
    • 2021-11-09
    • 2015-06-13
    • 2019-12-19
    • 2012-11-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多