Farion femeli

31.07.2019

Как настроить переадресацию на основном домене в WordPress

Filed under: — farion @ 07:12

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

Переход на 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

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

Для исправления данной проблемы нужно настроить редирект чтобы по всем путям была одна и та же страница тогда поисковики будут понимать и воспринимать данную страницу как единственную. Казалось бы чего может быть проще? Гоу в Google и следуем инструкции по настройке 301 редиректа и получаем конфетку.

Почему-то у меня просто не получилось и пришлось вникнуть что называется до основания и полюбить уникальную систему WordPress за ее неповторность и глубину.

Итак , я принял решение что сайт должен находится в сети по адресу https://site.com и все возможные дубли должны быть перенаправлены по этому адресу. Для решения этой задачи нужно настроить два редиректа :

  1. редирект сайта из www.site.com в site.com
  2. редирект из протокола http в протокол https

Задача будет решаться таким образом : средствами WordPress делаем редирект из www в без www , а изменения протокола мы перекладываем на сервер через директивы в файле .htaccess , на всякий случай напишу что для того чтобы протокол https работал необходимо установить на сайт SSL-сертификат безопасности . В моем случае провайдер по моему запросу в течении суток устанавливает этот сертификат самостоятельно без моего вмешательства. То есть в панели управления хостингом я захожу в настройки сайта в раздел SSL-сертификат и активирую запрос на установку данного сертификата на этот сайт. В течении суток сертификат активируется и есть возможность работы сайта по протоколу https. Для каждого домена и каждого поддомена нужно отдельно устанавливать SSL-сертификат. То есть если у вас на основном домене есть сайт и есть например два поддомена, то нужно будет установить три SSL-сертификата.

Ну с , приступим — идем в Google и выполняем разные рекомендации по 301 редиректу и переписыванию файла .htaccess и wp-config.php ………. в результате я получил красивую заставку — экран смерти WordPress.
< img src=»https://faryon.com/wp-content/uploads/ekran-smerti-vordpress.jpg»>

экран смерти вордпресс

так выглядит проблема на компьютере

Снова изыскания на просторах сети и получаем картинку смерти админки 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

Включаем переадресацию из  http на https

сохраняем настройки на сервере — после всех этих манипуляций у нас наконец-то оживает сайт — заходим по адресу нашего домена http://www.site.top и видим долгожданную картинку

то есть с преадресацией рабочей части  мы более менее управились — пойдем разбираться с протоколами и редиректом админпанели.

Настроим редирект в WordPress

заходим в админку вордпресс и в поле настройки общие

у нас становятся доступными опции смены адреса сайта и адреса директории установки  WordPress (мы ж помним ужасную картинку)

заменим siteurl и home на желаемые

теперь это выглядит примерно так и мы можем корректировать директории и урлы — меняем


Адрес 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 — удачи в вашем творчестве, надеюсь, не слишком утомительная получилась инструкция)))

PS: Для поддомена ситуация слегка попроще — там есть возможность установить WordPress непосредственно минуя папку www и отпадает необходимость в 301 редиректе из www ., но об этом в следующий раз.

Комментариев нет »

No comments yet.

RSS feed for comments on this post. TrackBack URL

Leave a comment

Powered by WordPress