Назад | Перейти на главную страницу

Расположение простого регулярного выражения nginx

Мне нужно установить параметр местоположения в 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]+) {
  #...
}