WordPress удобная система, позволяющая людям не слишком заточенным под программирование и все что с ним связанно достаточно легко создавать и обслуживать несложные сайты. Этим безусловно WordPress выгодно отличается от других систем управления контентом, но иногда в этой простой среде возникает авария и тогда WordPress показывает всю свою недружественную к ламерам сущность. Пример — как настроить https: ?
Переход на https протокол и переадресация из www на без www .
Жил был у меня сайт на WordPress и спокойно себе индексировался, давал какой-то траффик , неплохо ранжировался в поисковиках и был наполнен уникальным контентом. С течением времени я слегка подзабросил заниматься сайтом в надежде что уникальный контент сам найдет своего читателя, какое-то время все так и было, но наши умные поисковики решили перейти на протокол https и слегка изменили правила игры.
Не хочу слишком вдаваться в подробности и смысловые умозаключения но несколько месяцев назад я невзначай обнаружил полный провал позиций сайта и отсутствие в поисковой выдаче по моим родным ключевым запросам. Пришлось срочно вникать в тему и возвращать сайту потерянные позиции. Собственно после установки сертификата произошло дублирование контента на моем сайте из-за разных протоколов и путей к целевой странице. То есть на домене фактически каждая страница стала доступна в сети по разным адресам как то например :
- https://www.site.com/sample-page
- https://site.com/sample-page
- http://www.site.com/sample-page
- http://site.com/sample-page
в итоге поисковики не стали долго разбираться в причинно-следственных связях и выкинули с ранжирования массу неуникального на их взгляд контента. Пришлось самому вникать как настроить https: , поэтому могу поделиться)
Для исправления данной проблемы нужно настроить редирект чтобы по всем путям была одна и та же страница тогда поисковики будут понимать и воспринимать данную страницу как единственную. Казалось бы чего может быть проще? Гоу в Google и следуем инструкции по настройке 301 редиректа и получаем конфетку.
Почему-то у меня просто не получилось и пришлось вникнуть как настроить https: что называется до основания и полюбить уникальную систему WordPress за ее неповторность и глубину.
Постановка задачи.
Итак , я принял решение что сайт должен находится в сети по адресу https://site.com и все возможные дубли должны быть перенаправлены по этому адресу. Для решения этой задачи нужно настроить два редиректа :
- редирект сайта из www.site.com в site.com
- редирект из протокола http в протокол https
Задача будет решаться таким образом : средствами WordPress делаем редирект из www в без www , а изменения протокола мы перекладываем на сервер через директивы в файле .htaccess , на всякий случай напишу что для того чтобы протокол https работал необходимо установить на сайт SSL-сертификат безопасности . В моем случае провайдер по моему запросу в течении суток устанавливает этот сертификат самостоятельно без моего вмешательства. То есть в панели управления хостингом я захожу в настройки сайта в раздел SSL-сертификат и активирую запрос на установку данного сертификата на этот сайт. В течении суток сертификат активируется и есть возможность работы сайта по протоколу https. Для каждого домена и каждого поддомена нужно отдельно устанавливать SSL-сертификат. То есть если у вас на основном домене есть сайт и есть например два поддомена, то нужно будет установить три SSL-сертификата.
Ну с , приступим — идем в Google и выполняем разные рекомендации по 301 редиректу и переписыванию файла .htaccess и wp-config.php ………. в результате я получил красивую заставку — экран смерти WordPress.
Снова изыскания на просторах сети и получаем картинку смерти админки WordPress
с горем пополам и с помощью разных колдовских приемов я все-таки попадаю в админпанель WordPress , но — о ужас — я не могу внести изменения в настройки WordPress — не могу настроить правильно адрес сайта
не буду описывать все ссылки и эксперименты на пути к исправлению и настройке сайта, расскажу лишь последовательность действий и выложу фрагменты кода которые привели меня к успешной настройке сайта и надеюсь будут полезны и другим участникам сообщества любителей WordPress.
Последовательность настройки WordPress для сайта с протоколом https:// и без www
Набираемся терпения и следуем пошагово инструкции :
- нам нужен будет доступ по FTP к файлам нашего сайта
- нам нужен будет доступ к базе данных сайта phpmyadmin
- нам нужен пароль и логин для входа в админку WordPress
меняем siteurl и home
заходим на свой аккаунт у провайдера и через phpmyadmin в базе данных сайта исправляем siteurl и home
siteurl на http://www.site.top
home на http://www.site.top
где site.top — это ваш домен без http и www
у меня это выглядит так

правим базу данных
обращаю внимание на то что сейчас мы меняем оба адреса на на http://www.site.top — то есть прописываем одинаковый адрес и админки и сайта и места нахождение наших файлов вне зависимости от того как будет правильно и обязательно вписываем через www и без шифрования — то есть протокол http
грузим чистый htaccess
если файл .htaccess у вас существует в директории www на хостинге, то его нужно изменить, предварительно сохранив ту копию которая была на хостинге в папку себе на компьютере , если такого файла на хостинге нет, его необходимо будет создать,
при этом нужно понимать, что мы заходим на территорию программирования и тут есть свои правила игры — например не будет работать файл .htaccess созданный в блокноте или ворде, необходимо применять специализированные программы например Notepad++ или Adobe Dreamweaver .
# BEGIN WordPress RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] # END WordPress
копируем этот текст и копипастим код в наш редактор, после этого сохраняем файл с расширением htaccess то есть файл должен называться .htaccess
копируем этот файл в директорию www по адресу нашего домена на хостинг через FTP доступ, я для этого применяю в качестве FTP клиента Total Commander выглядит это так
при этом если на хостинге уже существует файл .htaccess то FTP клиент спросит разрешение заменить этот файл пропустить, переименовать — нам нужно заменить файл.
и переходим к файлу wp-config.php.
Манипуляции с файлом wp-config.php.
Когда то давно до начала всех манипуляций с переадресацией у нас был исходный файл wp-config.php — он нам сейчас и нужен. Скорее всего до начала всех действий вы делали копию всех файлов аккаунта или копию всех файлов сайта — нужно взять оттуда файл wp-config.php и заменить им то безобразие которое у нас получилось в результате всех манипуляций с редиректом. ( справедливости ради отмечу что на данном этапе нам мешает только прямой редирект в файле wp-config.php который скорее всего мы внесли по чей то рекомендации — нужно именно этот редирект убрать ).
В качестве примера — часть файла wp-config.php в которую скорее всего были внесены изменения — сравните с картинкой — у вас должно быть чтото похожее на этот фрагмент кода
загружаем через FTP на сервер в соответствующую папку
подтверждаем замену файла.
Настройка сайта на сервере.
Заходим на хостинг в панель управления и в настройки нашего сайта (не домена а именно сайта) там среди прочих не совсем понятных галочек и кнопочек будет два нужных нам раздела — переадресация.
Отключаем переадресацию www
помним как настроить https: — : включаем переадресацию из http на https
сохраняем настройки на сервере — после всех этих манипуляций у нас наконец-то оживает сайт — заходим по адресу нашего домена http://www.site.top и видим долгожданную картинку
то есть с преадресацией рабочей части мы более менее управились — пойдем разбираться с протоколами и редиректом админпанели.
Настроим редирект в WordPress
заходим в админку вордпресс и в поле настройки общие

редирект
у нас становятся доступными опции смены адреса сайта и адреса директории установки WordPress (мы ж помним ужасную картинку)
заменим siteurl и home на желаемые
теперь это выглядит примерно так и мы можем корректировать директории и урлы — вспоминаем как настроить https: в самом вордпресс — меняем
Адрес WordPress (URL) на http://www.site.top
Адрес сайта (URL) на https://site.top
сохраним настройки и проверяем — сайт должен работать причем по правильному адресу https://site.top проверяем перезапись siteurl и home заходим на свой аккаунт у провайдера и через phpmyadmin в базе данных
siteurl должно быть http://www.site.top
home должно быть https://site.top
все ок но с админпанели WordPress нас теперь выкидывает
ничего страшного — поправим.
Циклическая переадресация админпанели WordPress — исправим в wp-config.php
Теперь снова заходим в wp-config.php и дописываем строчки (тут нужно понимать какую версию wp-config.php использовать — если у Вас к примеру какой-то слишком сложный был файл то я бы рекомендовал взять версию этого файла до начала работы над преадресацией и вставить эти строки в код того файла)
/** переадресация для WordPress чтобы заходить в админпанель */ define('WP_HOME','http://www.f-design.top'); define('WP_SITEURL','https://f-design.top'); /** переадресация для WordPress чтобы заходить в админпанель */
сохраняем новую версию wp-config.php
после правильного обновления файла wp-config.php на хостинге путем его полной замены у нас появится возможность зайти в админпанель сайта и сайт будет находится по правильному адресу.
Обновим htaccess
Остается маленький штрих для избегания разных недоразумений в плане переадресации и дублей страниц и адресов. Нужно добавить переадресацию на шифрованный протокол на сервере —
то есть изменить файл .htaccess .
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC] RewriteRule ^(.*)$ http://%1/$1 [R=301,L] RewriteEngine On RewriteCond %{HTTPS} !on # BEGIN WordPress RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] # END WordPress
переписываем .htaccess на хостинге
не обращая внимание на предупреждение от TFP клиента
и проверяем полностью работоспособность нашего сайта на WordPress — удачи в вашем творчестве, надеюсь, как настроить https: рассказал достаточно подробно, надеюсь, не слишком утомительная получилась инструкция)))
PS: Для поддомена ситуация слегка попроще — там есть возможность установить WordPress непосредственно минуя папку www и отпадает необходимость в 301 редиректе из www ., но об этом в следующий раз.