Как форсировать HTTPS или HTTP для разных URL
Как форсировать HTTPS или HTTP для разных URL
Вы можете заставить части вашего сайта использовать HTTPS-протокол в конфигурации
безопасности. Это делается через правила access_control
, используя опцию
requires_channel
. Например, если вы хотите заставить все URL, начинающиеся
с /secure
, использовать HTTPS, то вы можете использовать следующую конфигурацию:
- YAML
- XML
- PHP
1 2 3 4 5 6
# config/packages/security.yaml
security:
# ...
access_control:
- { path: ^/secure, roles: ROLE_ADMIN, requires_channel: https }
Сама форма входа в систему должна позволять анонимный доступ, иначе пользователи
не смогут аутентифицироваться. Чтобы заставить её использовать HTTPS, вы всё ещё
можете использовать правила access_control
, используя роль IS_AUTHENTICATED_ANONYMOUSLY
:
- YAML
- XML
- PHP
1 2 3 4 5 6
# config/packages/security.yaml
security:
# ...
access_control:
- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: https }
Также возможно указать использование HTTPS в конфигурации маршрутизации, смотрите Как заставить маршруты всегда использовать HTTPS или HTTP, чтобы узнать больше деталей.