2014-07-10 38 views
1

我必須在symfony2應用程序中爲單一頁面使用HTTPS。我試着像如何強制symfony2僅爲一頁使用HTTPS

security.yml

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

它的工作原理很好,但是當我瀏覽到其他頁面從/支付頁面,它停留在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

你也可以嘗試添加「$」到像這樣的^/payment $這樣的路徑末尾,然後應該只工作路線/付款,而不是子路線。 –

+0

是的,我做了同樣的事情,但我的問題是我的整個網站正在使用** http **如果一旦我訪問/付款頁面,它變成** https **,並且永遠不會恢復到** http **。我只想** https **付款/付款頁面。 –

+0

您是否嘗試過添加{路徑:^ /,角色:ROLE_USER,requires_channel:http}這應該在所有路由上強制使用http,如果您保留https設置/付款,則應在/付款和網站的其他部分之間切換時切換。 –