Как правильно сделать 301 redirect на https?

Здравствуйте, подскажите как правильно сделать 301 редирект
С
site.ru
www.site.ru
https://site.ru
НА
https://www.site.ru
  • Вопрос задан
  • 414 просмотров
Решения вопроса 1
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
Редиректы надо делать на сервере. Какой у вас сервер? Nginx, Apache?
Для апача
RewriteCond %{HTTPS} off
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Правда, давно с ним не работал, может кто-то поправит. Ну или проверяйте.

UPDATE: Поскольку оказалось что у вас таки Nginx, вот конфиг для него:
# http to https
server {
       listen         80;
       listen         [::]:80;
       server_name    example.com www.example.com;
       return         301 https://www.example.com$request_uri;
}
# non-www to www via https
server {
        listen 443 ssl;
        listen [::]:443 ssl;
        ssl_certificate /etc/ssl/certs/*.domain.pem;
        ssl_certificate_key /etc/ssl/private/*.domain.pem;
        server_name example.com;
        return 301 https://www.example.com$request_uri;
}
# Main configuration
server {
        listen 443 ssl http2 default_server; # http2 нужен если вы хотите использовать HTTP/2, иначе не нужно
        listen [::]:443 ssl http2 default_server; # http2 нужен если вы хотите использовать HTTP/2, иначе не нужно
        server_name www.example.com;
        ssl_certificate /etc/ssl/certs/*.domain.pem;
        ssl_certificate_key /etc/ssl/private/*.domain.pem;
        # Остальная конфигурация
        ...
    
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы