Вопрос в целом не сложный вроде, я это уже делал как-то раз, но вот на очередном сайте хотелось бы послушать ваш вариант.

Я уже установил ssl на сервере, т.е. сайт уже работает с ssl. Теперь нужно правильно настроить редирект с http на https, и заменить все ссылки с http на https в текстах записей.

Где нужно было, в шаблоне все ссылки я уже заменил на относительные или на ссылки без протокола ( //url ).

Редиректы

Редирект наверное лучше всего настроить через .htaccess , путем вставки такой конструкции перед правилами WordPress. А лучше перед всеми правилами, т.е. в самое начало файла:

Тут важно, что устанавливается 301 редирект, в сети посмотрел эту тему, кое-где его не используют, а он нужен!

Также, можно установить редирект в PHP, вместе с редиректом c .htaccess. Пригодится, если по какой-то причине редирект с апача слетит, чтобы PHP был на подстраховке.

Изменение URL в контенте

В сети видел предложения заменять http на https прямо в базе данных. Я думаю это не лучшее решение, потому что возможно в будущем вы откажетесь от SSL и тогда нужно будет все менять обратно. Поэтому лучше делать замену на лету, таким кодом (он быстрый):

Как вы, наверное, понимаете функцию replace_url_to_https() можно будет применить к любому тексту, где нужно заменить текст http://ваш-сайт.ru/* текст на текст https://ваш-сайт.ru/* текст . Она меняет все без разбора, будь то картинки или что-то еще, но только для URL относящихся к текущему домену.

Изменение URL других ссылок

Вообще WordPress автоматически подстраивается под https протокол текущей страницы и все ссылки должны измениться автоматом. Поэтому нет необходимости изменять даже протоколы в ссылках: URL сайта и URL WordPress (в настройках). Их протокол меняется налету.

Но если этого не произошло (протокол страницы https, но в ней есть ссылки http), то для смены протокола отдельных ссылок в WP есть функция set_url_scheme().

Корневая функция на основе которой ставиться протокол всех ссылок — это is_ssl(). Влияя на нее мы может влиять на все ссылки, при условии, что они жестко не прописаны в HTML, а выводятся через различные функции WordPress. Например, следующим кодом мы можем, жестко указать протокол https для всех ссылок на странице, даже если протокол страницы http :

Вызвать такой код нужно как можно раньше, до подключения плагинов. И наверное перед его вызовом нужно сделать какие-то проверки. Этот код — это просто пример.

Плагины

Как обычно, можно использовать плагины (я их не пробовал).

Easy HTTPS Redirection — заглянул в код, вроде бы как раз то что вам нужно.

WordPress HTTPS (SSL) — вроде тоже хорош, правда не обновляется уже давно. Он, как я понял, заменяет все ссылки во всем HTML документе, работает как комбаин: много лишних операций, но может это и нужно, потому что удобно.

Протокол HTTPS — это расширение протокола HTTP, поддерживающее шифрование, что позволяет повысить безопасность пользователей и их данных на сайте. Для повышения безопасности и доверия пользователей всем сайтам, собирающим конфиденциальные данные следует перейти на протокол HTTPS.

Подготовка к переезду на HTTPS

Для того чтобы перейти на безопасный протокол потребуется первоначально установить SSL сертификат на хостинг. Бесплатно данный сертификат выдают хостинг компании или же можно сделать это самостоятельно ознакомившись с инструкцией.

После установки можно проверить, что сайт открывается по протоколу https (например, https://seopulses.ru).

При некорректной установке SSL-сертификата на экране появиться следующая ошибка.

Также можно будет увидеть данную ошибку при использовании истекших сертификатов.

Смена ссылок на относительные

Для того, чтобы безопасный протокол отображался корректно на сайте не должно быть упоминаний и ссылок на протокол http. Для этого можно сменить все ссылки в скриптах и файлах сайта на:

  • Протокол https. Например, заменить http://seopulses.ru на https://seopulses.ru;
  • Относительными ссылками. В этом случае ссылка https://seopulses.ru/kak-svyazat-google-analytics-i-google-search-console/ можно заменить на /kak-svyazat-google-analytics-i-google-search-console/ или /seopulses.ru/kak-svyazat-google-analytics-i-google-search-console/.

При корректном использовании правила в строке браузера, где прописан URL страницы можно увидеть зеленый «Замок» (для Google Chrome).

Если же в коде все еще остались ссылки на старую версию, то вместо «Замка» будет показан «Не защищено».

Для этой цели можно воспользоваться имеющимися плагинами и модулями, например, для WordPress подойдет модуль Really Simple SSL, который автоматически настроит файлы для корректной работы SSL-сертификата.

Корректность работы сайта

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

При возникновении таких ошибок следует обратиться к разработчику.

Редирект с http на https

Для того, чтобы переезд был полностью принят потребуется настроить 301-редирект с версии http на https.

Через файл .htaccess

Выполнить это действие можно прописав в файле .htaccess одно из следующих правил:

Здравствуйте читатели seoslim.ru! Нередко вебмастера сталкиваются с такой проблемой, когда из-за определенных обстоятельств, требуется смена доменного имени сайта.

Насколько я знаю, домен меняют чтобы:

  • сайт было легче запомнить
  • выйти из-под фильтра поисковых систем
  • сменить доменную зону (com, ru, org, by, net и другие)
  • заслужить внимание поисковиков, если у бывшего домена (дропа) была плохая история

Как правило, с подключением нового домена проблем не возникает, достаточно только перенести содержимое сайта (файлы и базу данных), установить 301 редирект и сделать правки в файле robots.txt.

Однако не стоит забывать, что все внутренние ссылки на новом сайте будут носить в названии упоминание старого домена. Теперь представьте, что у вас опубликовано 500 статей, в каждой из которых имеется по несколько внутренних ссылок и десяток картинок.

Страшно становится от той мысли, что надо все эти статьи перелопатить и поменять URL адреса ссылок на новые.

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

После подключения сертификата SSL сайт станет доступен по новому адресу, соответственно все внутренние ссылки и картинки, тоже будут иметь другой адрес.

http://seoslim.ru/. — старый адрес сайта

https ://seoslim.ru/. — новый адрес сайта

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

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

Плагин. Самый простой способ, чтобы заменить все ссылки на новые WordPress сайтов, надо скачать специальный плагин Velvet Blues Update URLs и в его настройках воспользоваться строкой замены URL адресов.

Первым делом нам надо установить плагин. Для этого я использую строку поиска плагина из административной панели Вордпресс.

Где в строке поиска вводим «Velvet Blues Update URLs» и жмем ссылку «Установить».

Далее его активируем и переходим в настройки данного модуля «Инструменты» далее «Update URLs».

Перед вами будет представлен следующий набор опций, состоящий из двух шагов.

На первом шаге надо ввести адрес старого и нового домена, в моем случае я меняю протокол с HTTP на HTTPS.

На втором шаге надо отметить галочками, в каких местах менять названия ссылок:

URLs in page content (posts, pages, custom post types, revisions) — в содержании страниц.

URLs in excerpts — в выдержках.

URLs in links — в ссылках.

URLs for attachments (images, documents, general media) — во вложениях (картинки, документы, медиа).

URLs in custom fields and meta boxes — в полях мета данных.

Важно! При замене ссылок обязательно укажите на конце адреса прямой слеш (/), чтобы ссылки подменялись правильно.

Теперь нажимаете «Update URLs NOW», после чего все ссылки внутри сайта будут изменены согласно тем опциям, что вы указали.

Как видно из скрина выше у меня на тестовом сайте, плагин Velvet Blues заменил 14 ссылок: 11 внутри постов и 3 в картинках.

Я безумно рад, что существует данный модуль, способный сэкономить кучу времени вебмастерам при массовом редактировании ссылок внутри сайта.

После замены всех линков плагин Velvet Blues можно удалить.

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

Это делается через панель управления MySQL базами вашего хостинг-провайдера. Так как я использую хостинг Макхост (о возможностях которого прочитаете здесь и здесь), я перехожу в своем аккаунте в раздел «Управление услугами» далее выбирают «Базы данных».

В открывшемся разделе иду в панель phpMyAdmin, той базы данных, что относится к редактируемому сайту.

Оказавшись в панели управления, переходим во вкладку «SQL» в которой и будем вводить специальные запросы к базе данных для автоматической замены ссылок в постах и по всему сайту.

Несколько команд по замене ссылок:

#Замена ссылок в полях: Адрес WordPress (URL) и Адрес сайта (URL) UPDATE wp_options SET option_value = replace(option_value, ‘http://старый_сайт,’http://новый_сайт.ru’) WHERE option_name = ‘home’ OR option_name = ‘siteurl’;

#Меняет все URL адреса страниц сайта на новые UPDATE wp_posts SET gu );

#Замена всех ссылок, которые находятся в тексте статей UPDATE wp_posts SET post_content = replace(post_content, ‘http://старый_сайт’,’http://новый_сайт.ru’);

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

Еще стоит добавить, что автоматически заменить старые ссылки на новые можно с помощью утилиты «WP-CLI» и PHP-скрипт «Search Replace DB», о работе которых почитаете в сети.

На этом у меня все. Интересно узнать от своих читателей был ли у кого опыт смены домена или протокола HTTP на HTTPS. C какими подводными камнями вам пришлось столкнулись?