NGINX重写url不起作用
我有以下重写位置:NGINX重写url不起作用,nginx,ngx-http-rewrite-module,Nginx,Ngx Http Rewrite Module,我有以下重写位置: location ~ ^/payment/gateway/v2/order/complete/(.*)$ { proxy_pass http://api.test.com:8080/payment/gateway/v2/order/complete?order_id=$1; } 然后我试了一下: location /payment/gateway/v2/order/complete { rewrite ^/payment/gateway/v2/order/
location ~ ^/payment/gateway/v2/order/complete/(.*)$ {
proxy_pass http://api.test.com:8080/payment/gateway/v2/order/complete?order_id=$1;
}
然后我试了一下:
location /payment/gateway/v2/order/complete {
rewrite ^/payment/gateway/v2/order/complete/(.+) /payment/gateway/v2/order/complete?order_id=$1 break;
proxy_pass http://api.test.com:8080
}
那么这个,
location /payment/gateway/v2/order/complete/ {
rewrite ^/payment/gateway/v2/order/complete/$ /payment/gateway/v2/order/complete?order_id=$1 last;
proxy_pass http://api.test.com:8080
}
location /payment/gateway/v2/order/complete {
rewrite ^/payment/gateway/v2/order/complete/([^/]+)$ /payment/gateway/v2/order/complete?order_id=$1 last;
proxy_pass http://api.test.com:8080;
}
那么这个,
location /payment/gateway/v2/order/complete/ {
rewrite ^/payment/gateway/v2/order/complete/$ /payment/gateway/v2/order/complete?order_id=$1 last;
proxy_pass http://api.test.com:8080
}
location /payment/gateway/v2/order/complete {
rewrite ^/payment/gateway/v2/order/complete/([^/]+)$ /payment/gateway/v2/order/complete?order_id=$1 last;
proxy_pass http://api.test.com:8080;
}
并非所有这些都有效
Nginx版本1.13.8
提前谢谢
编辑
上面所有的代码都很好,我发现了我的错误。我将其中一个配置文件复制到conf.d文件夹进行备份,但忘记将其重命名为扩展名。我把它拿走了,一切正常。谢谢大家的帮助
nginx -V 2>&1 | tr -- - '\n' | grep _module
这是检查已安装模块的方法。我也有同样的问题,看起来我没有安装/启用模块…您是否为nginx启用了rewrite_mod mod模块?我认为它在默认情况下已启用,否?