Getting 404 error when Virtual service with multiple URI match and rewrite URL created.
Below is the example.
We have one microservice A, we want whenever there is any call to https://hostName/serviceA/ it should get overwrite with https://hostName/ and whenever there is any call to
https://hostName/serviceA/scheme/default/ it should get overwrite with https://hostName/scheme/default
Below is the snippet of Virtual Service.
- name: service-A
match:
- uri:
prefix: /serviceA/
ignoreUriCase: true
rewrite:
uri: /
headers:
request:
add:
Cache-Control: "max-age=0, no-cache, no-store, must-revalidate"
Pragma: "no-cache"
Expires: "-1"
corsPolicy:
allowOrigins:
- exact: "*"
allowMethods:
- POST
- GET
allowCredentials: true
route:
- destination:
host: service-A
port:
number: 8080
- name: themes-service-A
match:
- uri:
prefix: /serviceA/scheme/default/
ignoreUriCase: true
rewrite:
uri: /scheme/default
headers:
request:
add:
Cache-Control: "max-age=0, no-cache, no-store, must-revalidate"
Pragma: "no-cache"
Expires: "-1"
add_header: "more_clear_headers server"
corsPolicy:
allowOrigins:
- exact: "*"
allowMethods:
- POST
- GET
allowCredentials: true
route:
- destination:
host: service-A
port:
number: 8080
But whenever we hit https://hostName/serviceA/scheme/default/ it gives a 404 error and we can see from the developers tool that the request goes to /serviceA//scheme/default/
But all request sent to https://hostName/serviceA/ gets 200 response.
Need your help to solve this issue