由于换了一套程序,需要将类型这种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。
时间: 2024-10-11 20:05:06