Як форсувати HTTPS або HTTP для різних URL
Дата оновлення перекладу 2024-06-03
Як форсувати HTTPS або HTTP для різних URL
Tip
Найкраща політика - форсувати https
у всіх URL, що можна зробити через вашу
конфігурацію веб-сервера або access_control
.
Ви можете змусити частини вашого сайту використовувати протокол HTTPS у конфігурації безпеки.
Це робиться через правила access_control
з використанням опції requires_channel
. Щоб
форсувати HTTPS в усіх URL, додайте конфігурацію requires_channel
до кожного контролю доступу:
1 2 3 4 5 6 7 8 9
# config/packages/security.yaml
security:
# ...
access_control:
- { path: '^/secure', roles: ROLE_ADMIN, requires_channel: https }
- { path: '^/login', roles: PUBLIC_ACCESS, requires_channel: https }
# спіймати всі інші URL
- { path: '^/', roles: PUBLIC_ACCESS, requires_channel: https }
Щоб полегшити життя під час розробки, ви можете також викоистати змінну середовища, типу
requires_channel: '%env(SECURE_SCHEME)%'
. У вашому файлі .env
, встановіть
SECURE_SCHEME
як http
за замовчуванням, але перевизначіть його як https
у
виробництві.
Див. Як працює безпека access_control?, щоб побачити більше деталей про access_control
в цілому.
Note
Альтернативний шлях форсування HTTP або HTTPS - це використання опції схеми маршруту або групи маршрутів.
Note
Форсування HTTPS з використанням зворотного проксі або балансувальника навантаження вимагає пправильної конфігурації, щоб уникнути нескінченних петель; див. Як сконфігурувати Symfony, щоб вона працювала за розподільником навантаження або зворотним проксі, щоб дізнатися більше.