nginx: регулярка с фигурными скобками

sidorka
На сайте с 17.08.2012
Offline
211
1161

Не могу понять, что не так.

Есть локейшн такого вида

location ~* "^\/.{32}\/(\d{3})\/(\d{3})\/.{32}\.jpg$" {
...
}

который должен срабатывать на такие урлы

/580755f2f1897bae9981137f67ed6c4c/040/939/b31af0e125cd4e8238db5db06912d6a2.jpg - нужны только 6 цифр в середине

Проблема с фигурными скобками? Вроде в кавычки заключил регулярку, как положено - без них нгинкс в ошибку вылетал при запуске.

Такая регулярка тоже не проходит - ^\/[a-z0-9]{32}\/(\d{3})\/(\d{3})\/[a-z0-9]{32}\.jpg$

Дешевые домены для дорвеев и не только - от 55р (https://goo.gl/Wtnwqp)
MU
На сайте с 01.10.2013
Offline
43
#1

Вроде всё правильно. Регэксп подходит для примера урла (но круглые скобки необязательны). Возможно в конфиге есть другие локейшены, под которые он тоже подходит? (например, что-нибудь вроде ~*\.(jpg|png|ico|), что-то подобное часто добавляют для отдачи статики)

Хостинг на SSD от 49 руб./мес. (http://mne.ru/services/virt_hosting.shtml) + бесплатный SSL VPS/VDS на SSD в России от 75 руб./мес. (http://mne.ru/services/vps.shtml) Скидка 10% на хостинг и VPS по промокоду — SEARCHENGINES
S
На сайте с 30.09.2016
Offline
469
#2

Попробуйте без бэкслэша перед слэшем:

"^/.{32}/(\d{3})/(\d{3})/.{32}\.jpg$"
У вас же ограничитель кавычки, а не слэш.
Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
S
На сайте с 30.09.2016
Offline
469
#3

Экранируются спецсимволы, а слэш таковым не является. Да и кавычки не нужны, может быть всё-таки? Вроде бы здесь регулярка без ограничителей работать должна.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий