Nginx的:位置正则expression式不工作

我正在得到我的正则expression式的麻烦,不知道它是什么问题。 它是用orls/f而不是orls/f?p=4550来返回一个URi。 当我通过https://secure.toto02.com/orls/myservice/f?p=4550

我的conf文件在下面

  location ~ "^/([a-zA-Z]+)/myservice/(.+)$" { error_log /var/log/nginx/error-server.log notice; rewrite_log on; #proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://192.168.3.45:8080/orls/$2; proxy_redirect http://192.168.3.45:8080/orls/ https://secure.toto02.com/$1/myservice/ ; } 

谁能帮忙?

捕获位置不会包含查询string。 您必须通过$is_args$argsvariables手动包含它,如下所示:

 proxy_pass http://192.168.3.45:8080/orls/$2$is_args$args; 

请参阅@ kolbyjack的(好得多)答案: https ://stackoverflow.com/questions/8130692/with-nginx-how-to-forward-query-parameters