如何将mod_rewrite(QSA选项)转换为Nginx等效?

时间:2008-11-11 10:07:58

标签: regex mod-rewrite nginx

我希望将以下mod_rewrite规则转换为Nginx equivalent

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的方法。

2 个答案:

答案 0 :(得分:17)

QSA在NGINX中是自动的。

如果您不想要,请添加?到新位置的末尾

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

答案 1 :(得分:5)

这些重写规则使脚本起作用:

rewrite ^/foo/([^?]*)(?:\?(.*))? /bar/index.php?title=$1&$2;
rewrite ^/foo /bar/index.php;