Мне нужно установить параметр местоположения в nginx, если первые 5 цифр URL-адреса являются числами.
site.com/12345/ or site.com/12345
Но я хоть убей не могу получить правильное регулярное выражение.
Ничего из этого не работает.
location ^/([0-9]) { }
location ^/(\d\d\d\d\d) {}
location /(\d\d\d\d\d) {}
Попробуй это
location ~ "^/[\d]{5}" {
# ...
}
~
означает расположение регулярного выражения
^
означает начало строки
[\d]
сокращение для цифр соответствия классу символов
{5}
показывает, что цифр должно быть ровно пять, не больше, не меньше
и ()
круглые скобки не нужны, если вы не хотите использовать группировку, например $ 1
Двойные кавычки, потому что фигурные скобки, используемые в регулярном выражении, должны быть заключены в двойные кавычки: https://stackoverflow.com/questions/14684463/curly-braces-and-from-apache-to-nginx-rewrite-rules
Попробуйте этот синтаксис (проверено на моем сервере):
location ~ ^/([0-9]+) {
#...
}