Rewrite with regex
Artur
nginx at netdirect.fr
Mon Apr 12 09:30:30 UTC 2021
Hello !
I have the following setup :
location / {
try_files $uri $uri/ @shortnames;
}
location @shortnames {
rewrite "^/([a-zA-Z0-9]{1,32})$" /index.php?short_name=$1 last;
return 404;
}
I filter the 'shortnames' URI to have a format similar to /dfg6df4g64
with minimum and maximum size, only digits and letters allowed. Working
well.
I want to add hyphen in the 'shortnames' so /ad5-ff56 or
/5f9-dfdf4-55f-ddfg are allowed ( but not /-ff4fg or /dgfgdf- ).
The regex that matches these conditions is something like (without the
size match) : ^/([a-zA-Z0-9]+([-][a-zA-Z0-9])*)$
However there is no match and rewrite fails.
My current setup is a Debain 10 server with nginx-full (14.2.2) installed.
Any idea on how I can solve this problem, please ?
--
Best regards,
Artur
More information about the nginx
mailing list