Questions & Feedback
Found a typo or an error?
Open a ticket.
Need support or have a technical question?
Post to the user mailing-list.
Master Symfony2 fundamentals
Symfony hosting done right
How to force HTTPS or HTTP for Different URLs
How to force HTTPS or HTTP for Different URLs¶
You can force areas of your site to use the HTTPS protocol in the security
config. This is done through the access_control rules using the requires_channel
option. For example, if you want to force all URLs starting with /secure
to use HTTPS then you could use the following config:
- YAML
access_control: - path: ^/secure roles: ROLE_ADMIN requires_channel: https
- XML
<access-control> <rule path="^/secure" role="ROLE_ADMIN" requires_channel="https" /> </access-control>
- PHP
'access_control' => array( array('path' => '^/secure', 'role' => 'ROLE_ADMIN', 'requires_channel' => 'https' ), ),
The login form itself needs to allow anonymous access otherwise users will
be unable to authenticate. To force it to use HTTPS you can still use
access_control rules by using the IS_AUTHENTICATED_ANONYMOUSLY
role:
- YAML
access_control: - path: ^/login roles: IS_AUTHENTICATED_ANONYMOUSLY requires_channel: https
- XML
<access-control> <rule path="^/login" role="IS_AUTHENTICATED_ANONYMOUSLY" requires_channel="https" /> </access-control>
- PHP
'access_control' => array( array('path' => '^/login', 'role' => 'IS_AUTHENTICATED_ANONYMOUSLY', 'requires_channel' => 'https' ), ),
It is also possible to specify using HTTPS in the routing configuration
see How to force routes to always use HTTPS or HTTP for more details.






is a trademark of Fabien Potencier. All rights reserved.