nginx重写错误问题

nginx重写错误问题,nginx,url-rewriting,Nginx,Url Rewriting,我的请求url是: nginx错误日志消息为: 2015/06/30 18:58:57 [error] 42780#0: *9 rewrite or internal redirection cycle while processing "/swim/api/v1/index.php/index.php/index.php/index.php/i ndex.php/index.php/index.php/index.php/index.php/index.php/index.php/me

我的请求url是:

nginx错误日志消息为:

2015/06/30 18:58:57 [error] 42780#0: *9 rewrite or internal redirection cycle while processing "/swim/api/v1/index.php/index.php/index.php/index.php/i    ndex.php/index.php/index.php/index.php/index.php/index.php/index.php/member/xx", client: 127.0.0.1, server: localhost, request: "GET /swim/api/v1/memb    er/xx HTTP/1.1", host: "localhost
nginx.conf重写规则为:

    location ~ ^/swim/api/(.*) {
      if ($uri ~* "/swim/api/v(\d+)/(\d+)/(.*)$") {
          set $ver $1;
          set $con $2;
      }
      rewrite ^/swim/api/(.*)$ /swim/api/v$ver/index.php/$con last;
  }

确保配置了与重新写入的url相匹配的更高优先级的位置

例如:

卷曲

输出:

你好,007


如果重写的uri仍然与此位置匹配,您期望得到什么?我将使用如下规则匹配:localhost/swim/api/v1/member/xx localhost/swim/api/v2/param1/param2 localhost/swim/api/v1/param3/param4/param4/paramN。。。
location ~ ^/swim/api/v(\d+)/index.php/(\d+).* {
  echo 'Hello $2' ;
  #proxy pass to your real upstream server here
}

location ~ ^/swim/api/v(\d+)/(\d+)/(.*)$ {
  set $ver $1;
  set $con $2;
  rewrite ^/swim/api/(.*)$ /swim/api/v$ver/index.php/$con last;
}