Я уже давно пользуюсь ISPmanager для администрирования своих сайтов и сайтов клиентов, однако некоторые «особенности» его работы до сих пор удивляют не на шутку.
Речь пойдёт о том, что все виртуальные хосты, созданные через эту панель, оказываются доступными также и по HTTPS-протоколу, хотя в их настройках это явным образом не прописано. Приводит это к появлению дублей страниц, которые могут быть проиндексированы поисковиками. Особенно этим славится Яндекс, который склонен подсовывать вместо нормальных страниц какую-нибудь хрень.
Техподдержка ISPmanager не смогла по этому поводу сказать ничего вразумительного.
Самым простым способом предотвращения появления дублей страниц по HTTPS является настройка перенаправления с кодом 301 с HTTPS на HTTP, что я и сделал.
Мой хостинг настроен на работу через прокси-сервер Nginx, в бэкенде как водится — Apache. Поэтому будем шаманить с Nginx.
Итак, в панели ISPmanagerа в разделе WWW-домены переходим в настройки конкретного хоста (кнопка Изменить)
и включаем опцию Защищённое соединение (SSL):
Сохраняем настройки и нажимаем соседнюю кнопку Конфиг. В открывшейся вкладке будет два файла конфигурации — прокси-сервера Nginx и Apache. Файл конфигурации Nginx будет состоять из двух секций работы по HTTP и HTTPS, полностью копирующих друг друга за исключением информации о сертификатах в последней секции. Необходимо скопировать секцию работы по SSL и сохранить её в блокноте.
Закрываем вкладку с конфигурационными файлами, снова переходим в настройки домена, убираем галку c опции Защищённое соединение (SSL) и сохраняем настройки. В результате мы вернёмся к исходному состоянию, но при этом сохраним самоподписанные сертификаты, которые не будут удалены.
В блокноте убираем лишнее и вставляем строчку перенаправления. У вас должно получиться что-то подобное:
server {
listen you.ip.ad.ress:443;
server_name myserver.ru www.myserver.ru;
return 301 http://www.myserver.ru$request_uri;
ssl on;
ssl_certificate "..............myserver.ru.crt";
ssl_certificate_key "..............myserver.ru.key";
ssl_ciphers HIGH:!RC4:!aNULL:!eNULL:!MD5:!EXPORT:!EXP:!LOW:!SEED:!CAMELLIA:!IDEA:!PSK:!SRP:!SSLv2;
ssl_prefer_server_ciphers on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
}
Теперь нужно снова открыть конфигурацию Nginx кнопкой Конфиг, вставить этот фрагмент после секции HTTP и сохранить изменения.
После этого я избавился от страниц, открывающихся по HTTPS.