当前位置: > Linux服务器 > nginx >

nginx url rewrite 的问号规则

时间:2016-05-27 19:26来源:linux.it.net.cn 作者:IT

我要把 http://www.abc.com/a/b?id=123 的一条链接转换成 http://www.abc.com/p-123.html

想当然就以为问号还是按照普通字符用正则表达式转义来处理,类似 b\?id= 这样,谁知道根本不起作用。

后来在谷歌帮助下才发现原来问号在nginx中是有特殊逻辑的,它用$query_string来表示问号以后的字符,即"id=123"

这样就好办了,换个方式就ok了。

最后是这样写的:

if ($request_uri ~* "^/a/b\?id=(\d+)$") {
                set $myarg1 $1;
                rewrite .* http://www.abc.com/p-$myarg1.html? permanent;
        }

注意,set $myarg1 $1; 这句话不能少,不能直接用$1,会出错的。




(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容