2014-07-10 6 views
1

Мне нужно использовать HTTPS только для одной страницы в приложении symfony2. Я пытался какКак заставить symfony2 использовать HTTPS только для одной страницы

security.yml

- { path: ^/payment, roles: ROLE_USER, requires_channel: https } 

Это работает хорошо, но когда я перейти на другие страницы с/на странице оплаты его STAYS же в HTTPS вместо HTTP. Я также пытался что-то от сонатного контроллера администратора, как:

PaymentAdmin.php

$collection 
     ->add('makePayment', 'payment/{paymentId}',$options = array('_scheme' => 'https')); 

но то же problem.simply я просто хочу, чтобы использовать HTTPS только для/страницы оплаты не для других страниц. как я могу решить эту проблему.

ответ

2

Вы можете попробовать добавить обозначение "^" в начало следующего цикла "^", чтобы указать, что маршруты, начинающиеся с/payment, должны быть в "https".

{ path: ^/payment, roles: ROLE_USER, requires_channel: https } 

Пример в http://symfony.com/doc/current/cookbook/security/force_https.html также показывает, что.

+0

Вы также можете попробовать добавить «$» к концу пути, как этот ^/платеж $, который затем должен работать только с маршрутом/оплатой, а не с подпунктными маршрутами. –

+0

Да, я сделал то же самое, но моя проблема заключается в том, что мой весь сайт использует ** http **, если однажды я посетил/страницу оплаты, он изменился на ** https ** и никогда не вернется к ** http **. Я просто хочу ** https ** для/страницы оплаты. –

+0

Вы пытались добавить {путь:^/, ролей: ROLE_USER, требуется_channel: http}, это должно обеспечить соблюдение http на всех маршрутах, и если вы оставите настройки https для/оплаты, он должен переключаться при переходе между/оплатой и остальной частью сайта , –

 Смежные вопросы

  • Нет связанных вопросов^_^