Trying to setup a wildcard url in ingress-nginx kubernetes Ingress to redirect to path based url it doesn't seem to pass the wildcard regex value.
The url would be something like "https://test.dev.example1.com/admin" and it should redirect to https://example2.com/folder/test
The result I am getting is redirect to https://example2.com/folder/
It appears I am not getting the wildcard value of "test" coming thru as a variable
Below is a snippet of the Ingress
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: sample-service-ingress
annotations:
kubernetes.io/ingress.class: nginx
cert-manager.io/issuer: "letsencrypt-production"
nginx.ingress.kubernetes.io/ssl-redirect: "true"
nginx.ingress.kubernetes.io/server-snippet: |
server_name ~^(?<name>[\w-]+)\.dev\.example1\.com$;
location /admin {
return 301 $scheme://example2.com/folder/$name;
}
...
I have also tested the regex in regex101.com and it looks to be correct. (minus the ~)
I have tried a few things like taking the $name var and putting in the middle of two other hardcoded values (ex. return 301 $scheme://example2.com/folder/begin.$name.end;) which returns "https://example2.com/folder/begin..end" which returns an empty or NULL value in between the begin..end hard coded values.
I am unsure if the $name var in the regex is correctly passing. I am not able to see a value.
I have used this in reference to the following as a reference https://stackoverflow.com/questions/39563071/how-to-get-subdomain-of-url-in-nginx