Высоков.ру

Редирект страниц с HTML на без HTML после переноса статей

redirect from html

После переноса постов одного сайта WordPress на другой сайт настроил редирект с HTML на страницы без HTML, так как на разных сайтах были настроены разные постоянные ссылки.

Экспорт / импорт статей WordPress

Проблема заключалась в том, что два подобных сайта получили разную оценку поисковика Яндекс: один из блогов про животных оказался под АГС-40. Что там нехорошего увидел поисковик – для меня до сих пор загадка, разгадыванием которой просто нет времени заниматься.

Поступил так, как показалось оптимальным. Экспортировал статьи нехорошего сайта и импортировал их на хороший сайт той же тематики (и того же качества, если что).

Экспорт статей WordPress

Экспорт постов и всего остального находится в админке, меню «Инструменты» — «Экспорт». Можно выбрать экспорт «всего содержимого», что мне не нужно, или экспорт только записей, например. Указал, что только опубликованные и нажал на кнопку «Скачать файл экспорт».

08-05-2015 16-49-31

Импорт записей WordPress

С импортом немного «сложнее»: идем в то же меню на сайте, куда будут добавлены экспортированные посты, и выбираем «Инструменты» — «Импорт». Затем нажимаем «WordPress», чтобы установить специальный плагин.

08-05-2015 16-51-53

После установки нажимаем ссылку «Активировать плагин и запустить импорт». Затем выбираем файл, сохраненный с прежнего сайта WordPress и нажимаем кнопку «Загрузить и импортировать файл».

08-05-2015 16-53-08

Здесь нам предложат «привязать авторов». Можно указать для новых записей своего автора или выбрать из списка существующего, который станет автором импортируемых статей. Также есть возможность отметить скачивание файлов вложений. Осталось нажать кнопку «Отправить» и дождаться публикации постов в новый блог.

08-05-2015 16-54-20

Редирект со старого сайта на новый после переноса статей

Так как на первом сайте (который под АГС) временно распрощаюсь, то на нем будет настроен редирект, ведущий на второй сайт. Для 301-го редиректа в корне «старого» сайта можно оставить только два файла, .htaccess и robots.txt, со следующим содержанием:

robots.txt

User-Agent: *
Disallow:
Host: newdomain.ru

Здесь для поисковиков указывается, что статьи и вообще сайт нужно искать по новому адресу (newdomain.ru)

.htaccess

<FilesMatch "robots.txt$">
RewriteEngine off
</FilesMatch>
Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*) http://newdomain.ru/$1 [R=301,L]

Здесь для Яндекса указывается, что файл robots.txt нужно читать именно на «старом домене» (чтобы передать «новому домену» все показатели), а всё остальное переадрисовывается 301-м редиректом на страницы нового домена (newdomain.ru).

Теперь при вводе адресов первого сайта будут открываться аналогичные 9перенесенные импортом) статьи второго сайта, что нам и требуется.

Редирект страниц с HTML на страницы без HTML

Но тут появляется одна проблемка: на первом сайте постоянные ссылки были с расширением html на конце, а на втором указаны стандартные постоянные ссылки (на конце – слеш). Поэтому при переходе к таким страницам будут открываться не их новые адреса на втором сайте, а страница 404-й ошибки.

Для исправления идем в файл .htaccess второго сайта (куда перенесены страницы) и вставляем туда команду редиректа, «исправляющего» адреса  с html на без html (например, http://domain.ru/page.html на http://domain.ru/page/).

Редирект «с html на слеш»

RedirectMatch /(.*)\.html$ /$1

Теперь всё в порядке. Поисковики и посетители переходящие по ссылкам старого сайта (с html) будут попадать на перенесенные страницы на новом сайте (без html)

И сразу же апдейт

В некоторых статьях ставил вручную ссылки на другие статьи. Теперь получается странный пердимонокль для посетителей, которые на ссылки нажмут, и для поисковиков: переход происходит по внешней ссылке на старый сайт, там возвращается на статью, которая уже на новом сайте, и вдобавок – редирект с html на страницу без html.

Поэтому заменил все вхождения первого домена на второй в статьях сайта с помощью SQL-запроса в базе данных. Как это сделать уже писал на отдельной странице с коллекцией запросов.

Замена домена в записях

UPDATE wp_posts SET post_content = REPLACE (post_content, 'olddomen.ru', 'newdomen.ru')
Комментировать