11

我希望将以下mod_rewrite规则转换为Nginx 等效规则:

RewriteRule ^foo/(.*)$ /bar/index.php?title=$1 [PT,L,QSA]
RewriteRule ^foo/*$ /bar/index.php [L,QSA]

到目前为止,我有:

rewrite ^foo/(.*)$ /bar/index.php?title=$1&$query_string last;
rewrite ^foo/?$ /bar/index.php?$query_string break;

问题是(我认为!)没有附加查询字符串。我还没有找到将QSA参数移植到 Nginx 的方法。

4

2 回答 2

18

QSA 在 NGINX 中是自动的。

如果你不想要它,添加 ? 到新位置的尽头

重写 ^/foo /bar/index.php? 最后的;

于 2009-01-04T11:12:43.297 回答
5

这些重写规则使脚本工作:

rewrite ^/foo/([^?]*)(?:\?(.*))? /bar/index.php?title=$1&$2;
rewrite ^/foo /bar/index.php;
于 2008-11-11T23:02:15.393 回答