I want to check if a parameter is present in a url in nginx and then rewrite. How can i do that?
The color is dynamic in the URLs
For eg
If url is http://website.com/lunch-box/xxxxxabc
then redirect user to http://website.com/lunch-box/
.
If URL is http://website.com/lunch-box/xxxxxabc/ABCD123
no need to redirect. Need to load as it is.
I want to redirect if URL is matched. and
xxxxxabc
is dynamic text.
nginx version: nginx/1.16.1
# rewrite direct children of /lunch-box but not grandchildren+
rewrite ^(/lunch-box/)[^/]+/?$ $1 last;
Walking through the regex ^(/lunch-box/)[^/]+/?$
^
matches the start of a string ( rewrite
rules match against the path, not the full URI) (/lunch-box/)
matches the literal text /lunch-box/
and saves it for $1
[^/]+
matches one or more characters that are not a forward slash /?
matches zero or one forward slash$
matches the end of the string This strips off the path past what we've saved as $1
, but only when that path is a direct child.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.