Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Nginx rewrite of URL with and without trailing slash

I am using the Nginx annotations in Helm like so:

ingress:
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /$2
  hosts:
    - host: "example.com"
      paths:
        - path: /api(/?)(.*)

When visiting example.com/api/, my URL is rewritten as expected and I am forwarded to my application.

However, when the trailing slash is omitted, e.g example.com/api, this no longer is the case. What could I do to ensure that the scenario without a trailing slash included is correctly evaluated?

like image 363
a clue Avatar asked Nov 18 '25 21:11

a clue


1 Answers

I think you are searching for regex alternatives?

ingress:
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /$2
  hosts:
    - host: "example.com"
      paths:
        - path: /api(/|$)(.*)

Either after /api there's another / with whatever (captured by the $2) or there is the end of the line, which will make /api be rewritten to /.

like image 118
AndD Avatar answered Nov 21 '25 15:11

AndD



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!