PhpBB3: переход на https - личный опыт

Кладовая теории, в которой собран опыт многих администраторов которые добились успехов в продвижении форумов.
Оптимизация phpbb3 | В каких цветах оформить форум? | Бесплатная раскрутка форума | Поисковая оптимизация (SEO)
watcher

PhpBB3: переход на https - личный опыт

watcher 17 мар 2019, 13:18 Сообщение

Исходные данные:

- Версия: 3.1.10
- Хостинг: виртуальный
- Сертификат: бесплатный от Let's Encrypt

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

На моем тарифе для доменов, обслуживаемых хостером, дается несколько бесплатных сертификатов (Let's Encrypt, вроде бы, и так бесплатные, но тут хостер берет на себя установку, отслеживание сроков действия и продление). Мне даже предоставили выбор: обычный серт (действующий для www/без www) или wildcard (то же самое + любые поддомены). Выбрал wildcard, раз дают. Хоть никаких поддоменов у меня в настоящее время нет, но мало ли... (мысль о создании для форума своего фотохостинга на поддомене меня время от времени посещает уже давно).

11 марта 2019
Заказал сертификат (тупо нажатие кнопки в панели управления), и минут через пять в Сети объявился двойник моего сайта, открывающийся по протоколу https.
Результат проверки сертификата на www.ssllabs.com:
PhpBB3: переход на https - личный опыт - ssl.jpg


Настройки в админке форума

1. Настройки cookies

Включаем безопасные, больше ничего не делаем:
PhpBB3: переход на https - личный опыт - настройки cookies.jpg


2. Настройки сервера

Прописываем новый протокол: https:// (именно так - с двоеточием и слэшами)
И новый порт: 443

PhpBB3: переход на https - личный опыт - настройки сервера.jpg


В верхней строчке (принудительные настройки) я сначала поставил "да", но позже (в тот же день) отключил, прислушавшись к советам, найденным в сети, что если сразу делается 301-й редирект с http на весь сайт, то этот пункт лучше не включать (о редиректе будет ниже)

Правка robots.txt

Надо всего лишь прописать новый адрес sitemap (с https)
Последний раз редактировалось watcher 17 мар 2019, 14:31, всего редактировалось 1 раз.

watcher

PhpBB3: переход на https - личный опыт

watcher 17 мар 2019, 14:20 Сообщение

Настройки редиректа в .htaccess

Задача: перенаправить все запросы к адресам http://сайт.ру, http://www.сайт.ру и https://www.сайт.ру на адрес https://сайт.ру. В идеале - перенаправить напрямую с каждого из старых адресов на новый (т.е. без двойных и т.д. редиректов).

До сих пор встречаются рекомендации насчет задержки включения редиректов (якобы склейка в Яндексе пройдет быстрее, если подождать, пока он найдет и проиндексирует https- сайт). Это не так. Более того - рекомендую настраивать перенаправление как можно быстрее. От учета директивы HOST Яша отказался еще в прошлом году, и сейчас, определяя главное зеркало, ориентируется в первую очередь на редиректы - проверено лично.

На самом деле, именно этот пункт при переезде на https является основным, поскольку вариантов перенаправления - куча, и нужно подобрать оптимальный. То, что хорошо сработало на точно таком же сайте, может не сработать у вас.
Последний раз редактировалось watcher 17 мар 2019, 14:22, всего редактировалось 1 раз.

watcher

PhpBB3: переход на https - личный опыт

watcher 17 мар 2019, 14:21 Сообщение

Проверка правильности настроек редиректов

Ну, как проверить правильность редиректа вручную (в браузере), всем понятно, я полагаю. Ошибка выбора варианта будет выражаться либо в неверном выполнении задачи, указанной в начале предыдущего поста, либо в сообщении, содержащем фразу про "слишком много перенаправлений".

Но настоятельно советую не ограничиваться ручной проверкой (а то можете потеряете время, как я))). В вебмастерской Яндекса есть инструмент "Проверка ответов сервера", вот им и прозванивайте последовательно каждый адрес. Https://сайт.ру должен отдать 200, все остальные - 301. Причем проверять ответы желательно на запрос не только основного робота, но и зеркальщика - там есть такая возможность.

Дело в том, что у вас в браузере все может открываться и перенаправляться как надо, но боты в то же время могут получать другие ответы. Мой случай: я быстро нашел вариант, который, казалось бы, нормально отрабатывал, но на следующий день при проверке кодов ответа выяснилось, что старые адреса отдавали не 301, а 302 редирект, а это для нормальной склейки не прокатит.

Еще один вариант развития ситуации: в браузерах все нормально, но боты на 4 из 5-ти обращений получают ответ 503. Это не очень криминально, но все же лучше попробовать подобрать код, при использовании которого 503-х ответов будет поменьше.

У меня в итоге сработала такая запись в .htaccess после RewriteEngine on:

Код: Выделить всё

RewriteCond %{HTTPS} off [OR] RewriteCond %{HTTP_HOST} ^www\. RewriteRule (.*) https://сайт.ру/$1 [L,NE,R=301]


*если кто-то будет пробовать, не забудьте вместо "сайт.ру" вписать свой домен

Изначально, кстати, в последней строчке "NE" (в конце) отсутствовало. Редирект срабатывал хорошо, но выяснилось, что при загрузке картинок на Forumimage стало добавляться %0A (прямо после закрывающего [/img]). Что все это значит - я понятия не имею, но, проанализировав один код, который был забракован мной из-за частых 503-х ответов, я вынул NE из него. Помогло.

*здесь надо сказать, что в синтаксисе .htaccess я не силен, это все делалось почти что методом тыка. Результат есть, но, если вдруг специалисты укажут на какие-то ошибки, буду признателен.
Последний раз редактировалось watcher 18 мар 2019, 11:13, всего редактировалось 5 раз.

watcher

PhpBB3: переход на https - личный опыт

watcher 17 мар 2019, 15:08 Сообщение

Действия в Я.Вебмастере и Google Search Console

Все это делается сразу, как только сайт начал открываться по https.

С Гугл все просто - надо добавить сайт, подтвердить права и добавить новую карту.
В Яндексе надо сделать то же самое, а потом использовать инструмент "Переезд сайта". Выбираем домен, с которого перезжаем, ставим галку около https и жмем "сохранить".

PhpBB3: переход на https - личный опыт - переезд1.jpg


Появится сообщение о том, что заявка принята в обработку. В моем случае это сообщение почти сразу сменилось на "ошибку" - дело было в неправильных редиректах, о чем я писал выше. Яндекс ждет только 200-х и 301-х ответов.
На самом деле, насколько я понял, использование данного сервиса не является обязательным, особенно - если речь идет о простой смене протокола (т.е. если каталоги файлов по факту существуют в единственном экземпляре и не меняют своего положения, то боты, по идее, сами должны понять, что происходит).

Разные настройки редиректов я тестил в течение двух дней (окончательный код был прописан только 13-го марта), и это сообщение об ошибке в сервисе "Переезд" у меня появлялось то и дело (скорее всего, дело было в частых 503-х ответах, получаемых ботом).

14 марта сайт с https стал обрастать данными - количество загруженных страниц стало 1462, из них в поисковой выдаче - 646 (на http - 67 897 и 15 874 соответственно).
15 марта пришло сообщение, что сайт с https признан главным зеркалом. ИКС, кстати, перенесся сразу (но, возможно, это до первого апдейта - посмотрим. Внешние ссылки в вебмастере пока не отобразились)
Последний раз редактировалось watcher 18 мар 2019, 11:15, всего редактировалось 2 раза.

watcher

PhpBB3: переход на https - личный опыт

watcher 17 мар 2019, 15:47 Сообщение

Страницы со смешанным содержимым, исправление внешних ссылок

Даже после перехода на https на сайте может оказаться куча страниц, содержащих ссылки с http. Возможно, что поисковики будут недолюбливать такие страницы, что скажется на выдаче.

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

Значение строки Enabled: Enabled
Значение строки Simple Mode: Simple Mode
Address of the image proxy указать: images.weserv.nl/?url=

PhpBB3: переход на https - личный опыт - CAMO.jpg


Расширение "обернёт" в https картинки, загруженные на http-хостинги (это касается только картинок в постах).

Еще один "картиночный затык" может быть с удаленными аватарами, если они размещены на сайтах с http, поскольку аватары Camo не подхватывает. Я подозреваю, что есть некий автоматизированный способ поиска и исправления таких аватар, но я его даже не пытался искать. У меня стоит вывод миниатюр аватар авторов тем и авторов последних сообщений, поэтому я просто открывал страницы форумов с темами и смотрел в адресную строку - браузер покажет, если защита осуществляется не полностью, а любой отладчик поможет определить, что именно на странице содержит http.

Аватары меняем через админку - если удаленная картинка может быть отображена по https, то можно просто добавить букву "s" в адрес, если нет - то качаем к себе, сжимаем (если нужно) и ставим пользователю как загружаемую.
Вполне возможно, что заменил далеко не все удаленные аватары, залитые на http-хостинги, но, честно говоря, это особо не парит (смешанное содержимое - не самая большая проблема, если таких страниц не много)
Последний раз редактировалось watcher 18 мар 2019, 11:19, всего редактировалось 1 раз.

watcher

PhpBB3: переход на https - личный опыт

watcher 17 мар 2019, 16:14 Сообщение

Исправление внутренних ссылок в постах

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

Делал автозамену через phpMyAdmin. SQL-запрос следующий:

Код: Выделить всё

UPDATE phpbb_posts SET post_text = replace(post_text, 'http://site.ru', 'https://site.ru');

*вместо site.ru - ваш домен

ВАЖНО: перед любыми шебуршаниями в БД не забываем делать резервную копию!!! Если на форуме не очень много сообщений, то копию можно сделать и в админке форума, если много, то лучше экспортировать БД из MyAdmin

Сделанная автозамена не затронула внутренние анкорные ссылки, проставленные через bb-код [url], который есть в составе расширения Advanced BBCode Box (речь о конструкции [url=внутренняя ссылка]анкор[/url]).
Там, вероятнее всего, был нужен другой синтаксис запроса. Но их я отредактировал вручную, найдя через БД.

Оффтоп:
Раз уж влез в MyAdmin, то заодно и убрал Re: из старых заголовков, оставшихся еще со времен 3.0
Запрос:

Код: Выделить всё

UPDATE phpbb_posts SET post_subject = SUBSTRING(post_subject, 4) WHERE post_subject LIKE 'Re: %';
Последний раз редактировалось watcher 18 мар 2019, 11:23, всего редактировалось 1 раз.

Аватара пользователя
CabinetAdmin

PhpBB3: переход на https - личный опыт

CabinetAdmin 17 мар 2019, 16:54 Сообщение

Нет ничего лучшего, чем личный опыт. :drink:

Заметку с "NE" взял на вооружение, пригодится.
Создать форум бесплатно на http://luckbb.ru/
Хочешь поблагодарить? Есть способы Поддержать проект

watcher

PhpBB3: переход на https - личный опыт

watcher 17 мар 2019, 19:43 Сообщение

CabinetAdmin писал(а):Источник цитаты Нет ничего лучшего, чем личный опыт

Разумеется! Тем более, что при правильном подходе никаких необратимых последствий не наступит. Главное - предварительно сохранять то, что начинаешь править, вне зависимости от того, насколько уверен в правильности действий.

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

PhpBB3: переход на https - личный опыт - вм.jpg

Да, еще: хоть и предполагал, что в метрике и РСЯ никаких настроек в связи со сменой протокола менять не нужно, все же отписал и туда, и туда. Обе техподдержки подтвердили, что никаких действий не требуется.

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

ЗЫ. Кстати, на общей посещаемости все проводимые мной в эти дни процедуры отрицательно не сказались. Только в метрике (в источниках) поначалу было отмечено сильное повышение количества внутренних переходов и, соответственно, понижение количества переходов из поисковиков. Насколько понимаю - это из-за редиректов. После склейки и признания главным зеркалом https отображение статистики стало потихоньку возвращаться к норме.

dotez

PhpBB3: переход на https - личный опыт

dotez 19 мар 2019, 11:22 Сообщение

В Метрику и ГуглАналитику вносились какие то изменения?

watcher

PhpBB3: переход на https - личный опыт

watcher 19 мар 2019, 12:07 Сообщение

dotez писал(а):Источник цитаты В Метрику и ГуглАналитику вносились какие то изменения?

Нет. Я специально писал в техподдержку, спрашивал (писал в Я.Метрику и РСЯ, в Гугл не писал, но там все по аналогии - достаточно добавить сайт в кабинет, подтвердить на него права и отправить новый адрес sitemap).

Сегодня, кстати, уже вот такие значения:

PhpBB3: переход на https - личный опыт - вм1.jpg

Чуть позже, когда переклеется большинство страниц, выложу графики из метрики. Но просадки, как я уже говорил, не замечено, т.к. в выдаче присутствуют страницы обоих сайтов.
Последний раз редактировалось watcher 19 мар 2019, 12:41, всего редактировалось 1 раз.

dotez

PhpBB3: переход на https - личный опыт

dotez 19 мар 2019, 12:39 Сообщение

watcher писал(а):Источник цитаты Исходные данные:

- Версия: 3.1.10
- Хостинг: виртуальный
- Сертификат: бесплатный от Let's Encrypt

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

На моем тарифе для доменов, обслуживаемых хостером, дается несколько бесплатных сертификатов (Let's Encrypt, вроде бы, и так бесплатные, но тут хостер берет на себя установку, отслеживание сроков действия и продление). Мне даже предоставили выбор: обычный серт (действующий для www/без www) или wildcard (то же самое + любые поддомены). Выбрал wildcard, раз дают. Хоть никаких поддоменов у меня в настоящее время нет, но мало ли... (мысль о создании для форума своего фотохостинга на поддомене меня время от времени посещает уже давно).

11 марта 2019
Заказал сертификат (тупо нажатие кнопки в панели управления), и минут через пять в Сети объявился двойник моего сайта, открывающийся по протоколу https.
Результат проверки сертификата на www.ssllabs.com:
ssl.jpg

Настройки в админке форума

1. Настройки cookies

Включаем безопасные, больше ничего не делаем:
настройки cookies.jpg

2. Настройки сервера

Прописываем новый протокол: https:// (именно так - с двоеточием и слэшами)
И новый порт: 443

настройки сервера.jpg

В верхней строчке (принудительные настройки) я сначала поставил "да", но позже (в тот же день) отключил, прислушавшись к советам, найденным в сети, что если сразу делается 301-й редирект с http на весь сайт, то этот пункт лучше не включать (о редиректе будет ниже)

Правка robots.txt

Надо всего лишь прописать новый адрес sitemap (с https)




а в robots.txt и sitemap.xml там какие надо изменения внести.?

watcher

PhpBB3: переход на https - личный опыт

watcher 19 мар 2019, 12:48 Сообщение

dotez,
В robots.txt я всего лишь переписал адрес карты (точнее - просто добавил в него "s"). Директиву HOST вообще удалил оттуда (но это не обязательно - она давно не учитывается Яндексом).
В sitemap.xml никакие изменения внести нереально. У меня карта генерируется расширением phpBB3 SEO Sitemap, я просто проверил, что ссылки в ней изменились на https, и всё.

dotez

PhpBB3: переход на https - личный опыт

dotez 19 мар 2019, 14:36 Сообщение

watcher писал(а):Источник цитаты Исходные данные:

- Версия: 3.1.10
- Хостинг: виртуальный
- Сертификат: бесплатный от Let's Encrypt

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

На моем тарифе для доменов, обслуживаемых хостером, дается несколько бесплатных сертификатов (Let's Encrypt, вроде бы, и так бесплатные, но тут хостер берет на себя установку, отслеживание сроков действия и продление). Мне даже предоставили выбор: обычный серт (действующий для www/без www) или wildcard (то же самое + любые поддомены). Выбрал wildcard, раз дают. Хоть никаких поддоменов у меня в настоящее время нет, но мало ли... (мысль о создании для форума своего фотохостинга на поддомене меня время от времени посещает уже давно).

11 марта 2019
Заказал сертификат (тупо нажатие кнопки в панели управления), и минут через пять в Сети объявился двойник моего сайта, открывающийся по протоколу https.
Результат проверки сертификата на http://www.ssllabs.com:
ssl.jpg

Настройки в админке форума

1. Настройки cookies

Включаем безопасные, больше ничего не делаем:
настройки cookies.jpg

2. Настройки сервера

Прописываем новый протокол: https:// (именно так - с двоеточием и слэшами)
И новый порт: 443

настройки сервера.jpg

В верхней строчке (принудительные настройки) я сначала поставил "да", но позже (в тот же день) отключил, прислушавшись к советам, найденным в сети, что если сразу делается 301-й редирект с http на весь сайт, то этот пункт лучше не включать (о редиректе будет ниже)

Правка robots.txt

Надо всего лишь прописать новый адрес sitemap (с https)




мне Хостер посоветовал такие варианты редиректа. не хочешь потестить?

Редирект c www на без www в условиях https:

Вариант 1:


Код: Выделить всё

SetEnv HTTPS on RewriteEngine On RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] RewriteRule ^(.*)$ %1/$1 [R=301,L] RewriteCond %{HTTPS} off RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]


Вариант2:

Код: Выделить всё

RewriteEngine On RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] RewriteRule ^ https://%1%{REQUEST_URI} [R,L] RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]



Вариант3:

Код: Выделить всё

RewriteEngine On RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] RewriteRule ^ https://%1%{REQUEST_URI} [R,L] RewriteCond %{HTTPS} off RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

watcher

PhpBB3: переход на https - личный опыт

watcher 19 мар 2019, 15:12 Сообщение

dotez писал(а):Источник цитаты не хочешь потестить?

Да мне, вроде как, уже ни к чему. Есть два хороших выражения, уместных в данном случае:
1. "Зачем чинить то, что работает?"
2. "Лучшее - враг хорошего".

На самом деле, вариантов записи правил редиректа в htaccess есть много, и никто не сможет заранее точно определить, какой нормально сработает именно в вашем случае. Советую в процессе подготовки записать в текстовый файл максимум вариантов, найденных в Сети, и потом уже пробовать последовательно каждый (в первую очередь лучше искать на тематических ресурсах, посвященных работе именно phpbb3).

Аватара пользователя
romaamor

PhpBB3: переход на https - личный опыт

romaamor 20 мар 2019, 08:23 Сообщение

У меня работает

Код: Выделить всё

RewriteCond %{HTTPS} off [OR] RewriteCond %{HTTP_HOST} ^www\. RewriteRule (.*) https://мойсайт.info/$1 [L,R=301]


Похожие темы

Вернуться в «Статьи / советы / инструкции.»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость