Я использую Symfony 3.4. У меня есть маршрут в моем файле security.yml, точнее в ключе access_control
. Маршрут проходит примерно так:
- { path: '^/route/subroute/SOME_TOKEN', roles: [ SOME_ROLE ] }
SOME_TOKEN
- это строка в кодировке, которая может содержать или не содержать косую черту в дополнение к неизвестному числу других символов.
Судя по тому, что говорят документы здесь мой маршрут должен выглядеть примерно так:
- { path: '^/route/subroute/.+', roles: [ SOME_ROLE ] }
Это дает мне 404: Route not found.
. Обратите внимание, что я использую Apache2 с включенной опцией AllowEncodedSlashes
.
Полагаю, я просто не знаю, как правильно написать регулярное выражение. Поскольку я тоже плохо разбираюсь в регулярных выражениях, меня это не удивляет.
Я пробовал разные варианты этого. Например (.+)
, [.+]
и т. Д.
# bin/console --env=dev debug:router | grep "/customer/unsubscribe/anon/"
customer_communication_preferences_unsubscribe_anon ANY https ANY /customer/unsubscribe/anon/{hash}
Определение маршрута:
customer_communication_preferences_unsubscribe_anon:
path: /customer/unsubscribe/anon/{hash}
defaults: { _controller: PizokelCustomerBundle:Communication:unsubscribeAnonCustomer }
schemes: ['%routing.scheme.my_account%']