Переменная захват со скобкой в ​​соответствии с местоположением NginxPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Переменная захват со скобкой в ​​соответствии с местоположением Nginx

Сообщение Anonymous »

У меня есть правило местоположения: < /p>

Код: Выделить всё

location ~ ^/banks/(?P[\w/~\-]+?)/responses/?$ {
rewrite ^ $scheme://${host}/services/responses/list/city/${region}/? permanent;
}
< /code>

И отлично подходит для URL -адресов, таких как: < /p>

http://example.com/banks/Arhangel~skaya_oblast~/Mirnyiy/responses/
< /code>

Но теперь мне нужно изменить свое местоположение, чтобы соответствовать URL -адресам со скобками внутри него. Я использую эту версию: < /p>

location ~ ^/banks/(?P[\w/~\-()]+?)/responses/?$ {
rewrite ^ $scheme://${host}/services/responses/list/city/${region}/? permanent;
}
Но нет никакого перезаписывания для url /banks/respublika_saha_(yakutiya)/neryungri/responses/.

Я проверяю этот шаблон с помощью php preg_match function:
>
.

Код: Выделить всё

preg_match('|^/banks/(?P[\w/~\-()]+?)/responses/?$|',
'/banks/Respublika_Saha_(Yakutiya)/Neryungri/responses/');
< /code>

и он возвращает 1 < /code>, поэтому этот шаблон соответствует URL с (< /code> и) < /code>. < /p>

Кроме тогоimport re
matches = re.search('|^/banks/(?P[\w/~\-()]+?)/responses/?$|','/banks/Respublika_Saha_(Yakutiya)/Neryungri/responses/')
print matches.start()
< /code>

и возвращает 0 < /code>, поэтому этот шаблон соответствует этой строке с самого начала. 

Но nginx не думает так. Моя версия nginx - Nginx/1.9.10 


Подробнее здесь: https://stackoverflow.com/questions/362 ... n-matching
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»