我使用Nginx作为代理服务器,并希望使用某些用户友好的URL与参数proxypass/重写到另一个URL与各自的参数。
我希望从这个URL:www.mydomain.com/report/bill/p1/p2/p3/p4使用此http://192.168.0.1:9002/reports/servlet?param1=$p1¶m2=$p2¶m3=$p3¶m4=$p4
我试了下面的方法,没有成功
location /report/bill/ {
rewrite ^/report/bill/(.*)$ $1 break;
rewrite ^/report/bill/(.*)/(.*)$ $2 break;
rewrite ^/report/bill/(.*)/(.*)/(.*)$ $3 break;
rewrite ^/report/bill/(.*)/(.*)/(.*)$/(.*)$ $4 break;
proxy_pass http://192.168.0.1:9002/reports/servlet?param1=$1¶m2=$2¶m3=$3¶m4=$4;
}
1条答案
按热度按时间k2arahey1#
你误解了
rewrite
的工作原理。但是,
rewrite
能够在一个语句中完成您想要的所有操作:我可能不会使用
(.*)
进行捕获,因为它捕获了包括/
s在内的所有内容。您可以使用([^/]+)
,它将捕获两个/
之间的所有内容。