用nginx中的几个参数清理url

我是nginx的新手。 问题是如何用查询string重写url来清理url:

对于一个参数:

host.com?page.html/param1=value1 <- host.com/page/value1 www.host.com?param1=value1 <- www.host.com/page/value1 

有两个参数:

 host.com?page.html/param1=value1&param2=value2 <- host.com/page/value1/value2 www.host.com?param1=value1&param2=value2 <- www.host.com/page/value1/value2 

对于n个参数:

 host.com?page.html/param1=value1&param2=value2..&paramN=valueN <- host.com/page/value1/value2/../valueN www.host.com?param1=value1&param2=value2..&paramN=valueN <- www.host.com/page/value1/value2/../valueN 

参数(又名参数或查询string)并不直接被看作是nginx重写URL的一部分。 而是将它们保存为可以访问,testing并插入到生成的URL中的variables。

他们保存的名字是$ arg_。 所以,在你的第一个例子中,你会想要redirect他们,就像这样:

 rewrite ^/page.html$ /page/$arg_param1? permanent; 

如果没有inputvalidation,我不会build议直接从主机名(www.host.com?param1 = value1)对参数进行重写,否则您将最终从您的主页redirect所有内容。