Como forçar HTTPS ou HTTP para URLs Diferentes¶
Através da configuração de segurança, você pode forçar que áreas do seu site usem o
protocolo HTTPS
. Isso é feito através das regras access_control
usando a opção
requires_channel
. Por exemplo, se você quiser forçar que todas as URLs que começam
com /secure
utilizem HTTPS
então você poderia usar a seguinte configuração:
- 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', ), ),
O próprio formulário de login precisa permitir acesso anônimo, caso contrário, os usuários
não seriam capazes de se autenticar. Para forçá-lo a usar HTTPS
você pode ainda usar
regras access_control
com o papel
IS_AUTHENTICATED_ANONYMOUSLY
:
- 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', ), ),
Também é possível especificar o uso de HTTPS
na configuração de roteamento.
Veja Como forçar as rotas a usar sempre HTTPS ou HTTP para mais detalhes.