我是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¶m2=value2 <- host.com/page/value1/value2 www.host.com?param1=value1¶m2=value2 <- www.host.com/page/value1/value2
对于n个参数:
host.com?page.html/param1=value1¶m2=value2..¶mN=valueN <- host.com/page/value1/value2/../valueN www.host.com?param1=value1¶m2=value2..¶mN=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所有内容。