Ответ
Перенаправление настраивается правилами, которые возвращают клиенту HTTP-статус 3xx (чаще всего 301 Moved Permanently или 302 Found) с заголовком Location, содержащим новый URL.
1. Nginx (самый распространенный случай):
# Перенаправление с HTTP на HTTPS для всего трафика.
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$server_name$request_uri;
}
# Перенаправление конкретного пути.
location /old-page {
return 301 https://example.com/new-page;
}
2. Apache:
# Включение модуля mod_rewrite (обычно требуется).
# Перенаправление на HTTPS.
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
# Альтернативно, с помощью директивы Redirect.
Redirect 301 /old-path https://example.com/new-path
3. Балансировщик нагрузки (HAProxy):
frontend http-in
bind *:80
# Редирект всего HTTP-трафика на HTTPS.
redirect scheme https code 301 if !{ ssl_fc }
# Редирект конкретного URL.
acl is_old_url path_beg /legacy-api
redirect location https://example.com/new-api code 301 if is_old_url
4. Облачные балансировщики (AWS ALB): Перенаправление настраивается через правила слушателя (Listener Rules) в консоли AWS или через Terraform:
resource "aws_lb_listener_rule" "redirect_http_to_https" {
listener_arn = aws_lb_listener.http.arn
action {
type = "redirect"
redirect {
port = "443"
protocol = "HTTPS"
status_code = "HTTP_301"
}
}
condition {
path_pattern {
values = ["/*"]
}
}
}
Ключевой момент: Используйте статус 301 для постоянных переездов (кэшируется браузерами и поисковиками), 302 — для временных.