nginx重写错误问题
我的请求url是: 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
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;
}