This seems to work : rewrite "^/((?:[a-zA-Z0-9]+(?:[-][a-zA-Z0-9])*)+)$" /index.php?short_name=$1 last;
However, I suppose there is no way to check the size of $1 here. Le 12/04/2021 à 11:30, Artur a écrit : > 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 _______________________________________________ nginx mailing list nginx@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx