分享一个Nginx rewrite 问号问题

Posted 371502685

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分享一个Nginx rewrite 问号问题相关的知识,希望对你有一定的参考价值。

由于换了一套程序,需要将类型这种url Show.aspx?BookID=105161 rewrite 成 Show.php?BookID=105161,开始以为很简单,直接写成下面这种
rewrite ^/Show.aspx?BookID=([0-9]+)$ /Show.php?BookID=$1 last,结果发现不行,直接404了,经过不断尝试发现这样可以:

/Show.aspx /zhang.php?$query_string last;

网上解释的原因是:

1.nginx在进行rewrite的正则表达式中只会将url中?前面的部分拿出来匹配

2.匹配完成后,?后面的内容将自动追加到url中(包含?),如果不让后面的内容追加上去,请在最后加上?即可;

个人感觉是个bug。

以上是关于分享一个Nginx rewrite 问号问题的主要内容,如果未能解决你的问题,请参考以下文章

Nginx

nginx rewrite arg 带问号的地址转发参数处理?Nginx重定向的参数问题

nginx rewrite uri地址重写

重新加载后nginx配置文件不更新

宝塔环境安装thinkcmf5 开启rewrite伪静态方法

站点默认访问https