Пятница , 26 Апрель 2024
ДомойПубликацииПеренос сайта на другой хостинг и переход на https

Перенос сайта на другой хостинг и переход на https

Друзья, приветствую!

Вот и у меня случились эти «счастливые моменты». Переносить сайт между хостингами приходилось не единожды, но переход на защищённый протокол — HTTPS — осуществлял впервые. В теории всё известно. На практике, как всегда, нужно ничего не забыть и просто знать некоторые проблемы, о которых обычно не пишут.

Задумываемый хет-трик: перенос сайта к новому хостеру с PHP 7, на HTTPS — не вышел. Но это не страшно, просто пришлось сделать чуть больше работы.

Хотите провернуть подобный трюк? Но проблемос!

Перенос сайта на другой хостинг и переход на HTTPS

→ Кому интересно — мой хостинг

Описывать в полной мере все процессы не буду. Более того, коснусь исключительно технической части. Вносить исправления в панели вебмастера Яндекса и Гугла оставляю на ваше усмотрение. По идее, редиректов должно быть достаточно, чтобы поисковики правильно переклеили сайт. Как оно по факту — сказать не берусь, сам узнаю в ближайший месяц. На этой ноте неопределённости и продолжим.

Краткий алгоритм действий

Прежде, чем приступать к указанным шагам, рекомендую убрать возможность добавления контента на сайте. В первую очередь, это касается комментариев. Для чего? Чтобы на новом месте получить то же содержимое.

  1. Сделать бэкапы файлов сайта и базы.
  2. Внести в бэкапы необходимые изменения.
  3. Восстановить копии сайта и базы у нового хостера.
  4. Правка файлов .htaccess и robots.txt.
  5. Убедиться, что сайт на новом месте работает.
  6. Сослать домен на новый хостинг.

Поисковые системы всё активнее склоняют вебмастеров переходить на защищённое соединение — HTTPS. Утверждается, что такие сайты будут находиться в выдаче выше своих «незащищённых собратьев». По отзывам некоторых SEO-специалистов, подобная тенденция действительно имеется. Так что я решился. Подобрал хостинг, предоставляющий бесплатные сертификаты SSL и «с разбегу в карьер».

Далее приведу небольшие комментарии по каждому пункту.

Сделать бэкапы файлов сайта и базы

Важно понимать, что в обязанности поддержки хостинга данная услуга если и входит, то из разряда «задампили там, развернули тут». Проблемы, вызванные другой версией PHP, иными настройками веб-сервера, отсутствующими модулями или ещё чем-либо придётся заниматься, в большинстве случаев, именно вам. Тем более, что имеющиеся архивы потребуются для некоторых манипуляций.

Копию таблиц базы просто сделать в phpMyAdmin. Вкладка «Экспорт» в помощь. Архив сайта можно создать с помощью панели управления старого хостинга.

Внести в бэкапы необходимые изменения

Первое и простое — зайти в панель управления новым хостингом. Если только купили, то домен уже должен быть прописан. В противном случае, добавляете новый домен.

При необходимости создаётся новый пользователь базы данных, новая база и пароль. Это понадобится чуть позже.

Далее, вносим правки в файлы движка (рассказываю на примере WordPress). В них нужно поиском найти строки, имеющие отношение к текущему хостингу. В моём случае это были параметры доступа к базе и путь к корню.

На старом месте путь был такой (у вас свой!):
/home/a01/domains/a-panov.ru
Нашёл в двух файлах (движок Word Press): wp-config.php и wp-content/wp-cache-config.php. Соответственно, заменил на путь нового хостинга.

Параметры доступа к базе содержатся в уже знакомом wp-config.php. Это константы:

  • DB_NAME — имя базы данных.
  • DB_USER — пользователь базы данных.
  • DB_PASSWORD — пароль пользователя базы.
  • DB_HOST — обычно можно сохранить дефолтное localhost.

Помимо этого, пошукайте файлы на предмет имени домена. В самом WP, насколько знаю, подобное не используется, но за плагины ручаться нельзя.

Второй этап — сложный. Мы переносим сайт не только на другой хостинг, но и на защищённый протокол. Поэтому все адреса, вида http://site.name должны быть заменены https://site.name. Но и про серверные пути не забываем. Поэтому, в дампе базы заменяем эти значения на новые.

Павел это дело немного разжевал и даже написа́л скрипт. Тут всё не столько сложно делается, сколько внимательно.

Восстановить копии сайта и базы у нового хостера

Первым делом заливаем базу. Проще всего сделать через phpMyAdmin.

Шаг два — заливаем архив в корень сайта. Удобнее по FTP. Потом, с помощью диспетчера файлов Панели управления хостинга архив можно распаковать.

В моём случае по защищённому протоколу — https — сайт не работал. Письмо в поддержку расставило точки: сертификат создаётся в течение суток с момента активации аккаунта. Нужно было просто подождать.

И теперь, сразу же, можно снова включить комментарии. Когда первые пользователи попадут на новый сервер, смогут общаться как раньше.

Правка файлов .htaccess и robots.txt

Сначала рассмотрим robots.txt — с ним проще. В директиве Host должно быть указано имя домена с протоколом, в виде:
Host: https://site.name
Если в директиве Sitemap путь начинается с http, исправьте на https.

В .htaccess, конфигурационном файле Apache, добавляем пару строк, отвечающих за редирект на https с сохранением адреса. Добавляйте их после директивы RewriteEngine On:

RewriteCond %{HTTPS} off
RewriteRule ^.*$ https://%{HTTP_HOST}/$0 [R=301,L]

Сначала условие — проверка, что сайт запрашивается не по защищённому протоколу. Далее — редирект на https-версию сайта.

Очень важное замечание! Не знаю, почему многие это постоянно игнорируют. С каждым советом говорю, что внешние редиректы должны быть раньше внутренних, и обязательно попадаются кадры, пропустившие эту инфу мимо ушей. А потом гордо заявляют, что ничего не работает и вообще, «что, никто помочь не может что ли?». Внешний редирект содержит ключ R. Если он будет располагаться после строки RewriteRule . /index.php [L], то никогда не получит управления. Поэтому, сначала следуют правила с внешними перенаправлениями, либо отдающие «мёртвые» страницы, страницы ошибок, если таковые имеются, потом — всё остальное.

Убедиться, что сайт на новом месте работает

Вроде всё хорошо, но по запросу в адресной строке открывается сайт на другом, старом, хостинге. Как указать браузеру, что надо идти на новый? Простой способ это сделать — добавить строку в файл hosts. У меня он находится тут: c:\WINDOWS\system32\drivers\etc\hosts
Добавьте туда:

10.0.0.1 site.name

Где 10.0.0.1 — IP нового сервера, на который перенесли сайт (есть в письме от хостера, которое присылается после активации аккаунта), site.name — адрес вашего сайта.

Теперь можно заходить на сайт как обычно. Браузер осуществит переход на новый сервер. Как проверить? У вас же включены комментарии, верно? Если браузер ломится на старый — бывает. Временно используйте другой веб-обозреватель.

Если сайт открывается — поздравляю! Рекомендую побегать по нему, зайти в панель управления и вообще проверить основную функциональность.

Сослать домен на новый хостинг

Это, пожалуй, самое простое. Заходите в панель регистратора домена, заменяете старые ns-сервера на новые (иногда называется DNS-серверы).

«Эн эсы» тоже присылаются письмом от хостера, обычно имеют вид: ns1.domain.ru и ns2.domain.ru

Далее — ждём. Как правило, первые посетители уже появляются в тот же день, а в пределах Сети данные распространяются в течение суток. В исключительных случаях может потребоваться 3 дня, но я с таким не сталкивался.

И ещё немного

Чтобы https работал в полной мере, без разных предупреждающих сообщений в браузерах, всё загружаемое на странице должно быть однородным. Это означает, что все стили, скрипты, шрифты, изображения и прочее необходимо подгружать по защищённому соединению. С первого раза что-то можете пропустить, но кто отменял итеративный подход? Со временем, подобное вполне можно исправить.

По поводу переклейки. Яндексу может потребоваться месяц, и даже больше. Гугл шустрее, но всё быть может.

Вот и всё. Сначала думал расписать более детально каждый шаг, но это случай, когда лучше действительно увидеть. Проще показать как делается, чем рассказать.

Если возникнут вопросы — обращайтесь.

Успехов с переездом!

→ Кому интересно — мой хостинг

Рейтинг: 1

Автор публикации

2 070
не в сети 12 месяцев

x64 (aka andi)

Комментарии: 2893Публикации: 405Регистрация: 02-04-2009
Так себеНеплохоХорошоЗамечательноСупер! (3 голосов, в среднем: 5,00 из 5)
Загрузка...

47 комментариев

  1. Опыт есть, значит, будем обращаться в случае чего! Спасибо за труд! smile

    Рейтинг: 2
  2. Ты, всё же сделал это!))) Андрей, для особо одарённых, что за хостинг, предоставляющий бесплатные сертификаты SSL — они же вроде все платные… кроме самоподписанных?

    Рейтинг: 2
    • У меня такой хостинг. Переезжать не пришлось, но с Яшей и Гошей мне этот https боком вышел. Гоша еще пошустрее как-то отреагировал, но Яша…

      Уже месяц зеркала клеит. Отобрал сначала ТИЦ, потом выкинул http из индекса и только вчера разместил https в индексе. Чтобы это как-то положительно повлияло на посещаемость — я не заметил. Вернулась посещаемость такая, которая была до перехода на https. После месяца просадки Яша восстановил позиции блога.

      Может и ТИЦ вернется, хотя на сегодняшний день он нужен мне как папуасу бусинка. Вроде, ни на что он не влияет. Может и отменят его, как Гоша свой PR отменил.

      Рейтинг: 1
      • Денис, тут же действует совокупность факторов. В частности, давно не было новых статей)
        С тИЦем — только апдейтов ждать. Далее как повезёт. А с зеркалами Яндексу может пару месяцев понадобиться.

        Рейтинг: 1
    • Елена, приветствую!
      Не думаю, что подобную услугу предоставляет только один хостинг. Если интересно, какой хостинг у меня — вот эти ребята.
      С сертификатами всё изменилось к лучшему. Раньше выход был один — самоподписанный, как ты верно сказала, и ругался на это каждый браузер. Но с появление в декабре прошлого года Let’s Encrypt всё изменилось. Mozilla и Google создали центр сертификации, выдающий бесплатные сертификаты в упрощённом режиме. Провайдерам, стало быть, это дело надо было автоматизировать)

      Рейтинг: 1
  3. Иннокентий

    Хорошее техниченое повествование) — беру на заметку, хотя в ближайшее время подобного пока что не планируем

    Рейтинг: 2
  4. Константин

    Андрей, на форумах неоднократно попадались посты о том, что переход на https заметно снижает доход с контекстной рекламы, причем не в процессе перехода, а на уже переведенных сайтах. Хотелось бы узнать из достоверного источника, насколько это соответствует действительности. Поделишься наблюдениями на этот счет, когда все устаканится?

    Рейтинг: 2
    • Константин, доброго дня.
      Не слышал про это. Если так, то странно. При условии, что коды не подключаются криво)
      В любом случае, будет видно. Спасибо за раннее предупреждение!

      Рейтинг: 1
    • Иннокентий

      Интерсненькое замечание… мне такое ещё не попадалось. А как вообще это может технически произойти? Только наверно, если гугk сам поставит в такие условия сайт, размещающий рекламу. Или рекламодатель выдвигает такое условие… Ведь как подругому-то?

      Рейтинг: 2
      • Иннокентий, в том и дело, что не помню такого в интерфейсах директа и адвордса sad
        Грешу пока на неверную установку кодов — если их подключать по http, браузеры не будут загружать содержимое. А может просто особенность такая. В любом случае, узнаю, наверное, в январе.

        Рейтинг: 1
  5. Спасибо за упоминание!
    Буду ждать известий о том, как переход на https сказался на трафике и заработке. Из прочитанной здесь информации уже решил, что переходит буду летом, когда трафик будет минимален. И спешка тут ни к чему. Вот уже появились бесплатные сертификаты. Можно и ещё подождать, пока совсем хорошо станет

    Рейтинг: 2
    • Павел, приветствую!
      Да, спешить не надо. Кстати, у Яндекса сегодня очередной апдейт случался. Хорошо так порезало переходы с его выдачи. Главное, быть морально готовым к подобному безобразию)

      Рейтинг: 2
  6. Приветствую всех! Андрей, мой хостер тоже предлагает бесплатный переход. Но я так боюсь лезть в корень. Сколько ещё есть времени для обязательного перехода, не в курсе?

    Рейтинг: 2
    • Наталья, доброй ночи!
      Поисковики пока приняли решение «неспешно склонять к переходу». Возможно, этот период растянется на сколь угодно долгий срок. Как-то форсировать процесс, на мой взгляд, особого смысла нет. Для информационных сайтов без авторизации смысл отсутствует напрочь — какая разница, что кто-то перехватит траф, если информация и так открыта? Но тут уж как порешат сильные, нам можно внимать их советам, а можно игнорировать и надеяться, что так поступит большинство)

      Рейтинг: 1
      • Знаешь в чём сейчас будет проблема? Все твои комменты будут некорректны. Они будут отображаться, как перенаправленные. Придётся менять твой адрес сайта в ручную. Отправлять их в помойку — мне совесть не позволит!
        У меня плагин стоит, который отлавливает битые ссылки.

        Рейтинг: 2
  7. Всё наладится! Я уверена!

    Рейтинг: 2
  8. Мне сегодня бывший хостер прислал письмо счастья, дескать, покупай скорей SSL, пока у нас скидки, всего за 15.9 € в год, а то с 1 января 2017 сайт будет помечен в Хроме, как небезопасный.
    Полез гуглить. Оказалось, в первоисточнике говорится, что в режиме приватного просмотра в Хроме будут предупреждать о небезопасном соединении. Но ещё не решили, как именно: красным треугольником или серой надписью. И планируют в будущем также предупреждать в обычном режиме на страницах с вводом пароля или банковских карт. Но ещё не решили, когда до такой меры дойдёт

    Рейтинг: 2
    • Павел, да это просто аттракцион щедрости) Для информационных сайтов и блогов замечательно Let’s Encrypt взлетит. Но не тысяча сто по курсу же.
      Пока больше всего вопросов вызывает та самая пометка. Если ограничится адресной строкой, большинство даже и не поймут, что это было.

      Рейтинг: 1
    • Дождались нового года и нового Хрома. И вот: рядом с адресом появляется серая надпись «не защищено». И то не на всех страницах, а только на тех, где есть поле ввода пароля (например, у меня это только страница входа в админку).
      Такое информирование очень даже поддерживаю. Друг недавно поведал, как у него хакнули вафлю и через незащищённое соединение сосниффили админский пароль к форуму.
      Давно уже задумывался о чём-то подобном, но теперь решил перейти к активным действиям. Трафик терять не хочу, потому придумал такую схему (как ты говоришь, первый шаг итерационного подхода). Подключил к домену самоподписанный сертификат (на который браузер кричит матом, что подлинность домена не доказана и лучше валить отсюда, но можно нажать еле-заметную ссылку и добавить в исключение). И перевёл на ssl только страницу входа и все запросы после логина (получил печеньку «наш чел» — всё, только https). А если сайт (фронт-энд) просматривает гость — то автоматический редирект на http, чтобы дубли не создавать.
      Итоги:
      1) процедура ввода пароля и последующая активность зашифрована
      2) для гостей и ботов всё без изменений

      Интересует твоё экспертное мнение, камрад!

      Рейтинг: 1
      • Павел, приветствую.
        Главное, чтобы Гугла как-то иначе сайты без https ранжировать не стал)
        Схема интересная, и имеет право. Для ботов условия выполнены (секретные данные на защищёнке). Для пользователей ничего не изменилось.
        Единственное, что в голову приходит: не будут ли метрика/аналитика как-то соотносить страницы на разных протоколах? Звучит скорее бредово, но псы и так замечались за индексированием запрещаемого содержимого.
        И картинки, если напрямую подключаются с других сайтов, будет уведомление о наличии небезопасных элементов на странице. Но это так, дабы сказать чего)
        Итого: реализация замечательная. Лишь бы поисковики в своих алгоритмах не натупили чего.

        Рейтинг: 0
  9. Приветствую всех! Читая информацию в интернете, где переходят с протокола http на https, там было написано, что при правильном подключении в адресной строке должен стоять зеленый замок. Андрей, а у вас стоит знак вопроса, не все сработало или как? sad

    Рейтинг: 2

Оставить комментарий

Политика конфиденциальности

Наш сайт использует файлы cookies, чтобы улучшить работу и повысить эффективность сайта. Продолжая работу с сайтом, вы соглашаетесь с использованием нами cookies и политикой конфиденциальности.

Принять