Knowledge Base
Редирект HTTP → HTTPS
Nginx: правильный редирект
Категория: SSL/TLS · Риск: low
Nginx: правильный редирект
server {
listen 80;
listen [::]:80;
server_name example.com www.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name example.com www.example.com;
# ... SSL config
}
Apache: правильный редирект
<VirtualHost *:80>
ServerName example.com
RewriteEngine On
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</VirtualHost>
Cloudflare: redirect loop
Причина: Cloudflare SSL = Flexible (шифрует клиент↔CF, но CF→сервер по HTTP). Если на сервере есть редирект HTTP→HTTPS, возникает петля.
**Решение:** Cloudflare SSL/TLS → Full (strict).
Проверка
curl -sIL http://example.com
# Ожидаем: HTTP/1.1 301 → Location: https://example.com/
# Затем: HTTP/2 200
# Нет redirect loop если цепочка ≤ 2 шагов