NGINX重写参数为'漂亮'网址

时间:2017-02-28 19:26:52

标签: nginx url-rewriting

我需要重写用户输入的URL:

https://local.example.com/mh/526446841/mc90-c

服务器来自:

https://local.example.com/mh/526446841/?name=mc90-c

我似乎无法让它发挥作用!我试过了:

rewrite ^/mh/(.*)/(.*)$ /mh/$1/?name=$2? last;

1 个答案:

答案 0 :(得分:1)

在目前的形式中,它鼓励重定向循环,因为目标URI仍然匹配正则表达式

我可以想出三种打破循环的方法:

  1. rewrite语句移至server块,应使last停止所有重写处理。
  2. 在处理源和目标的同一rewrite块中使用location语句,表示last可以更改为break
  3. 更改正则表达式,以便目标URI不再匹配:

    rewrite ^/mh/([^/]+)/(.+)$ /mh/$1/?name=$2? last;
    
  4. 有关详情,请参阅this document