Друзья, приветствую!
Вот и у меня случились эти «счастливые моменты». Переносить сайт между хостингами приходилось не единожды, но переход на защищённый протокол — HTTPS — осуществлял впервые. В теории всё известно. На практике, как всегда, нужно ничего не забыть и просто знать некоторые проблемы, о которых обычно не пишут.
Задумываемый хет-трик: перенос сайта к новому хостеру с PHP 7, на HTTPS — не вышел. Но это не страшно, просто пришлось сделать чуть больше работы.
Хотите провернуть подобный трюк? Но проблемос!
→ Кому интересно — мой хостинг
Описывать в полной мере все процессы не буду. Более того, коснусь исключительно технической части. Вносить исправления в панели вебмастера Яндекса и Гугла оставляю на ваше усмотрение. По идее, редиректов должно быть достаточно, чтобы поисковики правильно переклеили сайт. Как оно по факту — сказать не берусь, сам узнаю в ближайший месяц. На этой ноте неопределённости и продолжим.
Краткий алгоритм действий
Прежде, чем приступать к указанным шагам, рекомендую убрать возможность добавления контента на сайте. В первую очередь, это касается комментариев. Для чего? Чтобы на новом месте получить то же содержимое.
- Сделать бэкапы файлов сайта и базы.
- Внести в бэкапы необходимые изменения.
- Восстановить копии сайта и базы у нового хостера.
- Правка файлов .htaccess и robots.txt.
- Убедиться, что сайт на новом месте работает.
- Сослать домен на новый хостинг.
Поисковые системы всё активнее склоняют вебмастеров переходить на защищённое соединение — 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 месяц
Опыт есть, значит, будем обращаться в случае чего! Спасибо за труд!
Елена, привет!
Да не за что. Пользуйтесь)
Ты, всё же сделал это!))) Андрей, для особо одарённых, что за хостинг, предоставляющий бесплатные сертификаты SSL — они же вроде все платные… кроме самоподписанных?
У меня такой хостинг. Переезжать не пришлось, но с Яшей и Гошей мне этот https боком вышел. Гоша еще пошустрее как-то отреагировал, но Яша…
Уже месяц зеркала клеит. Отобрал сначала ТИЦ, потом выкинул http из индекса и только вчера разместил https в индексе. Чтобы это как-то положительно повлияло на посещаемость — я не заметил. Вернулась посещаемость такая, которая была до перехода на https. После месяца просадки Яша восстановил позиции блога.
Может и ТИЦ вернется, хотя на сегодняшний день он нужен мне как папуасу бусинка. Вроде, ни на что он не влияет. Может и отменят его, как Гоша свой PR отменил.
Денис, тут же действует совокупность факторов. В частности, давно не было новых статей)
С тИЦем — только апдейтов ждать. Далее как повезёт. А с зеркалами Яндексу может пару месяцев понадобиться.
Елена, приветствую!
Не думаю, что подобную услугу предоставляет только один хостинг. Если интересно, какой хостинг у меня — вот эти ребята.
С сертификатами всё изменилось к лучшему. Раньше выход был один — самоподписанный, как ты верно сказала, и ругался на это каждый браузер. Но с появление в декабре прошлого года Let’s Encrypt всё изменилось. Mozilla и Google создали центр сертификации, выдающий бесплатные сертификаты в упрощённом режиме. Провайдерам, стало быть, это дело надо было автоматизировать)
Хорошее техниченое повествование) — беру на заметку, хотя в ближайшее время подобного пока что не планируем
Иннокентий, здравствуйте!
Пусть лучше будет несколько заметок, чем бегать и искать, когда понадобится)
Андрей, на форумах неоднократно попадались посты о том, что переход на https заметно снижает доход с контекстной рекламы, причем не в процессе перехода, а на уже переведенных сайтах. Хотелось бы узнать из достоверного источника, насколько это соответствует действительности. Поделишься наблюдениями на этот счет, когда все устаканится?
Константин, доброго дня.
Не слышал про это. Если так, то странно. При условии, что коды не подключаются криво)
В любом случае, будет видно. Спасибо за раннее предупреждение!
Интерсненькое замечание… мне такое ещё не попадалось. А как вообще это может технически произойти? Только наверно, если гугk сам поставит в такие условия сайт, размещающий рекламу. Или рекламодатель выдвигает такое условие… Ведь как подругому-то?
Иннокентий, в том и дело, что не помню такого в интерфейсах директа и адвордса
Грешу пока на неверную установку кодов — если их подключать по http, браузеры не будут загружать содержимое. А может просто особенность такая. В любом случае, узнаю, наверное, в январе.
Спасибо за упоминание!
Буду ждать известий о том, как переход на https сказался на трафике и заработке. Из прочитанной здесь информации уже решил, что переходит буду летом, когда трафик будет минимален. И спешка тут ни к чему. Вот уже появились бесплатные сертификаты. Можно и ещё подождать, пока совсем хорошо станет
Павел, приветствую!
Да, спешить не надо. Кстати, у Яндекса сегодня очередной апдейт случался. Хорошо так порезало переходы с его выдачи. Главное, быть морально готовым к подобному безобразию)
Приветствую всех! Андрей, мой хостер тоже предлагает бесплатный переход. Но я так боюсь лезть в корень. Сколько ещё есть времени для обязательного перехода, не в курсе?
Наталья, доброй ночи!
Поисковики пока приняли решение «неспешно склонять к переходу». Возможно, этот период растянется на сколь угодно долгий срок. Как-то форсировать процесс, на мой взгляд, особого смысла нет. Для информационных сайтов без авторизации смысл отсутствует напрочь — какая разница, что кто-то перехватит траф, если информация и так открыта? Но тут уж как порешат сильные, нам можно внимать их советам, а можно игнорировать и надеяться, что так поступит большинство)
Знаешь в чём сейчас будет проблема? Все твои комменты будут некорректны. Они будут отображаться, как перенаправленные. Придётся менять твой адрес сайта в ручную. Отправлять их в помойку — мне совесть не позволит!
У меня плагин стоит, который отлавливает битые ссылки.
Наталья, тут уж ничего не поделать)
Редиректы у меня настроены, так что по этому плану порядок, битых ссылок быть не должно.
Если же это как-то тревожит, то проще группой снести всё, я ж новых, правильных, наоставляю
Андрей, они не битые, они перенаправленные получаются. Пока этого нет. Попробуй, напиши что нибудь, проверю!
Наталья, от перенаправлений никуда не деться) Даже с поиска и с рекламы ссылки через редиректы все идут.
Пока плагин молчит. Комментарии видны. Жду результатов.
Наталья, даже не нужно волноваться, если что)
Андрей, уведомления о твоих ответах, стали в «спам» прилететь!
А у меня всё Ок! Только что получила два уведомленияв ящик!
А это из-за заморочек переноса и перехода…?
Наталья, ну что ж тут могу поделать? Только терпеливо ждать пока достанут. Или удалят скопом
Судя по всему, это началось некоторое время назад. Обратил внимание, что сначала появляются комментарии, оставленные после меня, а потом, через день-другой, мои. Видимо, после проверки папки Спам выковыривались.
Надо каждый раз из спама доставая — говорить блогу, что это не спам!!! У Акисмета есть такая функция, его можно отучить сообщения от хороших людей в спам складывать.
Может и у Вас, Наталья, противоспамный плагин умеет это делать?
Видимо, плагин все-таки некорректно отрабатывает, Наталья.
Я проверила у себя в блоге — прежние комментарии Андрея направляют сразу на сайт, как и новые.
Всё наладится! Я уверена!
Наталья, должно быть так)
А то Яндекс, негодяй, порезал знатно.
Мне сегодня бывший хостер прислал письмо счастья, дескать, покупай скорей SSL, пока у нас скидки, всего за 15.9 € в год, а то с 1 января 2017 сайт будет помечен в Хроме, как небезопасный.
Полез гуглить. Оказалось, в первоисточнике говорится, что в режиме приватного просмотра в Хроме будут предупреждать о небезопасном соединении. Но ещё не решили, как именно: красным треугольником или серой надписью. И планируют в будущем также предупреждать в обычном режиме на страницах с вводом пароля или банковских карт. Но ещё не решили, когда до такой меры дойдёт
Павел, да это просто аттракцион щедрости) Для информационных сайтов и блогов замечательно Let’s Encrypt взлетит. Но не тысяча сто по курсу же.
Пока больше всего вопросов вызывает та самая пометка. Если ограничится адресной строкой, большинство даже и не поймут, что это было.
Дождались нового года и нового Хрома. И вот: рядом с адресом появляется серая надпись «не защищено». И то не на всех страницах, а только на тех, где есть поле ввода пароля (например, у меня это только страница входа в админку).
Такое информирование очень даже поддерживаю. Друг недавно поведал, как у него хакнули вафлю и через незащищённое соединение сосниффили админский пароль к форуму.
Давно уже задумывался о чём-то подобном, но теперь решил перейти к активным действиям. Трафик терять не хочу, потому придумал такую схему (как ты говоришь, первый шаг итерационного подхода). Подключил к домену самоподписанный сертификат (на который браузер кричит матом, что подлинность домена не доказана и лучше валить отсюда, но можно нажать еле-заметную ссылку и добавить в исключение). И перевёл на ssl только страницу входа и все запросы после логина (получил печеньку «наш чел» — всё, только https). А если сайт (фронт-энд) просматривает гость — то автоматический редирект на http, чтобы дубли не создавать.
Итоги:
1) процедура ввода пароля и последующая активность зашифрована
2) для гостей и ботов всё без изменений
Интересует твоё экспертное мнение, камрад!
Павел, приветствую.
Главное, чтобы Гугла как-то иначе сайты без https ранжировать не стал)
Схема интересная, и имеет право. Для ботов условия выполнены (секретные данные на защищёнке). Для пользователей ничего не изменилось.
Единственное, что в голову приходит: не будут ли метрика/аналитика как-то соотносить страницы на разных протоколах? Звучит скорее бредово, но псы и так замечались за индексированием запрещаемого содержимого.
И картинки, если напрямую подключаются с других сайтов, будет уведомление о наличии небезопасных элементов на странице. Но это так, дабы сказать чего)
Итого: реализация замечательная. Лишь бы поисковики в своих алгоритмах не натупили чего.
Приветствую всех! Читая информацию в интернете, где переходят с протокола http на https, там было написано, что при правильном подключении в адресной строке должен стоять зеленый замок. Андрей, а у вас стоит знак вопроса, не все сработало или как?
Здравствуйте, Софья! У меня была такая же история, даже ругался чей-то компьютер на мой блог — оказалось, человеку нужно было очистить кэш браузера. Кстати, у Анди есть подробнейшая статья о том, как это сделать.
Вечно на нашу блоговодскую голову сыпятся перемены… То новые версии PHP, то новые протоколы…
Не дают заскучать и мхом порасти
Денис, в моём случае была именно надежда, что виновата контекстная реклама
Надеюсь, теперь всё ок.
Софья, здравствуйте!
Действительно, при первом запросе получается жёлтый замок, при последующих — зелёный. Это говорит о том, что где-то подключается содержимое по http:
В коде страницы всё было ок, и как бы подзабил… А вот сейчас проверил особо, нашёл, что именно неверно подключается, нашёл жабаскрипт, который это делает и вроде как пофиксил. Хотя раньше грешил на контекст.
В общем, СПАСИБО за пинок!
Андрей, хорошо то, что хорошо кончается! Вообще-то я не пинаюсь . Просто читаю и анализирую, как переходить на новый протокол, а сама пока боюсь это делать. Унесет блог куда-нибудь на «кудыкину горку», ищи потом. И оставлять как есть не хочется, особенно, если потом, с января, такие сайты будут помечены, как ненадежные.
Софья, тут ещё неизвестно, как лучше. Если случится крупный косяк, сайт вообще из индекса выпасть может, потом неизвестно, когда траф восстановится.
Андрей, если все же надумаю переходить, подскажи пожалуйста
Вставлять две строчки перенаправления нужно сразу после RewriteEngine On
или можно в конце поставить
У меня вот такой .htaccess
RewriteEngine On
Потёр на всякий случай
Софья, всё верно, сразу после включения реврайт энжина.
Далее идёт внутренний редирект, которые обрабатывается сервером. Если после него поставить, до внешнего дело вообще не дойдёт.
Общее правило составления: сначала внешние (которые браузеру отдают 301/302 со ссылкой на страницу), потом внутренние.
Софья, у меня в браузере (хром) как раз стоит зеленый замок на сайте Андрея. ;)
Светлана, доброго дня!
Благодарю за тест-драйв
Привет, приветсnвенный Мы сегодня уж здоровкались… :P
А благодарить особо не за что — мне самой любопытно стало, как ссылки работают…
Как нежадный еврей, могу и два раза
так и здоровались они дни и ночи напролёт
Здравствуйте, здравствуйте)