Сегодня я настраивал nginx и столкнулся с странной проблемой. Я пытался сопоставить такое место:
location ~ ^/([0-9]+)/(.*) {
# do proxy redirects
}
... для URL типа "http://my.domain.com/0001/index.html".
Это правило никогда не соответствовало, несмотря на то, что оно по всем правилам должно. Мне потребовалось некоторое время, чтобы понять, основываясь на эта документация, что некоторые символы в регулярных выражениях необходимо заключать в кавычки. Проблема в том, что документация предназначена для перезаписи, и в ней конкретно указаны фигурные скобки, а не квадратные скобки. После изрядного экспериментирования, которое включало много ругательств, я обнаружил, что могу решить проблему, цитируя регулярное выражение следующим образом:
location ~ "^/([0-9]+)/(.*)" {
# do proxy redirects
}
Есть ли где-нибудь список символов, с которыми nginx требует цитирования регулярных выражений? Или здесь может быть что-то еще, чего я полностью упускаю? Это моя первая работа по настройке nginx, поэтому вполне возможно, что я что-то неправильно понял ...
Вам нужен номер? Я бы сначала попробовал более простой вариант и посмотрел, не в чем-то другом.
Я бы попробовал, если ^ / [0-9] + /, или вам нужны захваченные элементы?