nginx用url重写部分内容?标记

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx用url重写部分内容?标记相关的知识,希望对你有一定的参考价值。

我正在服务一个以nginx作为apache代理的网站。我有重写模块的问题。

http://example.com/foo/bar/url?someparam=1&otherparam=2

我需要重写

/富/酒吧/ URL?someparam = 1&otherparam = 2

/富/酒吧/ URL2?someparam = 1&otherparam = 2

我发现它有问题,因为它不是/foo/bar/url/someparam,但它只是文本的一部分,我需要在动态网址中重写。

我在尝试:rewrite ^(.*)url(.*)$ $1url2$2;,但我得到错误500。

我怎样才能做到这一点?

答案

rewrite语句中,新URI也与正则表达式模式匹配。这将导致重定向循环以500响应结束。

您需要使正则表达式更具体,以便新URI不匹配。

此外,nginx在处理rewrite语句时使用规范化的URI,不包括?及其后面的查询字符串。所以你的陈述可以简化如下:

rewrite ^(.*)url$ $1url1;

rewrite指令将自动在原始URI中附加任何?和查询字符串。

有关更多信息,请参阅this document

那个URI

以上是关于nginx用url重写部分内容?标记的主要内容,如果未能解决你的问题,请参考以下文章

nginx URL重写(rewrite)

nginx 重定向跳转和不跳转两种需求

关于nginx你可能不知道的秘密----nginx地址重写以及错误页面配置

如何在 nginx 中转换(重写)部分 URL

nginx 重写:除了空的基本 url 之外的所有内容

nginx如何截取url部分字符并替换,求助