0

当我的所有其他 URL 重写工作完美时,为什么这不起作用:

rewrite "^/search/?\?q(.+)$" /search.php?q$1 break;

我确实重新启动了 nginx 和所有这些。

4

1 回答 1

2

重写仅适用于 uri 路径。您不需要重写查询字符串部分,因为默认情况下它会自动附加到新的 url。

rewrite /search /search.php break;

例如,/search?q=something 将被写入 /search.php?q=something。

有关详细信息,请参阅http://wiki.nginx.org/HttpRewriteModule#rewrite 。下面的这一行解决了您的问题

同样 rewrite 仅对路径进行操作,而不对参数进行操作。

于 2013-03-10T15:58:20.127 回答