Nginx Regex URL重写不起作用

Nginx Regex URL重写不起作用,regex,nginx,Regex,Nginx,当我所有其他URL重写都能完美工作时,这究竟为什么不起作用: rewrite "^/search/?\?q(.+)$" /search.php?q$1 break; 我确实重新启动了nginx,所有这些。重写只在uri路径上起作用。您不需要重写查询字符串部分,因为默认情况下它会自动附加到新的url rewrite /search /search.php break; 例如,/search?q=something将被写入/search.php?q=something 有关更多详细信息,请参阅。

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

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

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

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

rewrite /search /search.php break;
例如,/search?q=something将被写入/search.php?q=something

有关更多详细信息,请参阅。下面这一行回答了您的问题

此外,“重写”仅在路径上操作,而不在参数上操作


你的URL看起来怎么样?预期的结果是什么?我正在尝试将
search?q=which
search/?q=which
更改为
search.php?q=which
这应该可以工作。你犯了什么错误?另外,请尝试使用
\1
代替
$1