当我所有其他网址重写完美无缺时,为什么这不起作用:
rewrite "^/search/?\?q(.+)$" /search.php?q$1 break;
我确实重启了nginx以及所有这些。
答案 0 :(得分:2)
重写仅适用于uri路径。您不需要重写查询字符串部分,因为默认情况下它会自动附加到新的URL。
rewrite /search /search.php break;
例如,/ search?q =会将某些内容写入/search.php?q=something。
有关详细信息,请参阅http://wiki.nginx.org/HttpRewriteModule#rewrite。以下这一行解决了您的问题
同样重写只能在路径上操作,而不是参数。