【发布时间】:2013-09-04 12:25:55
【问题描述】:
我看到了一个 nginx 重写规则,它从 URL 中捕获查询参数并将相同的查询参数应用于重写的 URL。我可以理解,在某些情况下,在重写规则中捕获查询参数可能/将是有益的,但在我看来,在这种情况下这样做是没有意义的。
有问题的重写规则如下:
rewrite ^/users/(\d+)\.html(?:\?(.*))?$ /users/profile.php?id=$1&$2 last;
我怀疑这毫无意义吗?我相信下面的重写规则会产生同样的效果:
rewrite ^/users/(\d+)\.html$ /users/profile.php?id=$1 last;
【问题讨论】:
-
简单的重写不能改变查询参数,它们被保存在
$args变量中,这个重写唯一会捕获的就是如果有对uri的扩展,例如:example.com/index.html/some/extension
标签: url-rewriting nginx