我看到了一个nginx重写规则,它从URL捕获查询参数,并将相同的查询参数应用于重写后的URL。我可以理解,在某些情况下,在重写规则中捕获查询参数可能/将是有益的,但在我看来,在这种情况下这样做是没有意义的。
有问题的重写规则如下:
rewrite ^/users/(\d+)\.html(?:\?(.*))?$ /users/profile.php?id=$1&$2 last;这是否如我所怀疑的那样毫无意义?我相信下面的重写规则也会有同样的效果:
rewrite ^/users/(\d+)\.html$ /users/profile.php?id=$1 last;发布于 2014-01-16 21:39:32
第一次重写将不起作用,$2将始终为空,即使存在传递给请求的查询字符串,
你的第二次重写是非常正确的,但我认为它不会保留查询字符串,如果你想这样做,那么你应该自己附加它。
rewrite ^/users/(\d+)\.html$ /users/profile.php?id=$1&$query_string last;https://stackoverflow.com/questions/18555519
复制相似问题