Как создать перенаправления в WordPress

Приветствую всех!

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

Как создать перенаправления в WordPress

Есть несколько причин, по которым вам может понадобиться создать редирект на вашем сайте WordPress. Вы можете изменить структуру постоянных ссылок, удалить старую запись или страницу или создать новую запись в блоге, чтобы заменить старую. Какова бы ни была ваша причина, в этих случаях рекомендуется создавать перенаправление (редирект), чтобы ваши посетители не получали ошибку страницы 404 при попытке просмотра вашего контента по старой ссылке. Если вы впервые слышите об этой лучшей практике, возможно, будет хорошей идеей использовать Google Search Console чтобы увидеть, есть ли на вашем сайте 404 ошибки, требующие исправления. Хорошей новостью является то, что если у вас уже исправлено 404 ошибки или вы просто хотите избежать их в будущем, эта статья научит вас создавать перенаправления в WordPress тремя различными способами, чтобы вы могли выбрать лучшее решение для ваших нужд.

Что такое перенаправления в WordPress?

Технически, это не просто перенаправления в WordPress, а веб-перенаправления, которые сообщает браузерам, что X-URL больше не доступен и что вместо этого он должен перейти на Y-URL. Независимо от того, работает ли ваш сайт на Wix, на Drupal или просто на старом HTML-сайте, перенаправление URL может быть выполнено практически одинаково. Неважно, какую платформу вы используете.

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

  • 301 – постоянное перенаправление. Вы используете их при смене URL или структуры сайта навсегда. Вся мощь и рейтинг СЕО старой ссылки переносятся на новую. Для всех намерений и целей старый URL просто превращается в новый.
  • 302 – временный редирект. Вы используете его, когда вам нужно краткосрочное изменение. Может быть, редизайн сайта или быстрое исправление ошибки или сбоя. Вес ссылки или рейтинг не передаются.

Также есть перенаправления 300, 303, 304, 307 и 308. Но они зарезервированы для невероятно особых случаев, которые связаны с особым использованием POST и GET запросов, в 95% которых из нас не нуждаются. Если вам интересна эта тема, в Mozilla Developer Network есть фантастическая документация по различным видам перенаправлений. Но с точки зрения вашего перенаправления в WordPress, вы будете использовать основной – 301 и 302 – случайный.

Как создать перенаправления в WordPress

Создание перенаправления WordPress с помощью .htaccess

Одним из наиболее важных файлов для сайта является файл .htaccess. Что касается доступа, то вполне понятно, что вы можете одобрить, запретить или перенаправить доступ к вашему сайту через него. Хотя это может показаться пугающим из-за того, насколько важно, чтобы вы ничего не сделали неправильно, реальное редактирование файла для перенаправления настолько простое, насколько это возможно.

Используйте вашу любимую программу FTP (вероятно, это может быть FileZilla, я пользуюсь WinSCP), чтобы попасть в корневой каталог вашей установки WordPress. Просто под основными папками вы должны увидеть .htaccess.

Создание перенаправления

Откройте его в своем текстовом или кодовом редакторе (я лично использую IDE PHPStorm).

Откройте его

Все, что вам нужно сделать для перенаправления WordPress, это добавить простую строку кода чуть выше строки, которая гласит #BEGIN WordPress.

Redirect 301 / https://zacompom.ru/

или же

Redirect 302 / https://zacompom.ru/

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

Redirect 301 /blog_post https://zacompom.ru/category/blog_post

или же

Redirect 302 /blog_post2.html /category/blog_post2.html

Redirect 301

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

#301 Redirects for .htaccess
#Redirect a single page:
Redirect 301 /pagename.php http://www.domain.com/pagename.html
#Redirect an entire site:
Redirect 301 / http://www.domain.com/
#Redirect an entire site to a sub folder
Redirect 301 / http://www.domain.com/subfolder/
#Redirect a sub folder to another site
Redirect 301 /subfolder http://www.domain.com/
#This will redirect any file with the .html extension to use the same filename but use the .php extension instead.
RedirectMatch 301 (.*)\.html$ http://www.domain.com$1.php
##
#You can also perform 301 redirects using rewriting via .htaccess.
##
#Redirect from old domain to new domain
RewriteEngine on
RewriteBase /
RewriteRule (.*) http://www.newdomain.com/$1 [R=301,L]
#Redirect to www location
RewriteEngine on
RewriteBase /
rewritecond %{http_host} ^domain.com [nc]
rewriterule ^(.*)$ http://www.domain.com/$1 [r=301,nc]
#Redirect to www location with subdirectory
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} domain.com [NC]
RewriteRule ^(.*)$ http://www.domain.com/directory/index.html [R=301,NC]
#Redirect from old domain to new domain with full path and query string:
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^(.*) http://www.newdomain.com%{REQUEST_URI} [R=302,NC]
#Redirect from old domain with subdirectory to new domain w/o subdirectory including full path and query string:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/subdirname/(.*)$
RewriteRule ^(.*) http://www.katcode.com/%1 [R=302,NC]
Rewrite and redirect URLs with query parameters (files placed in root directory)
Original URL:
http://www.example.com/index.php?id=1
Desired destination URL:
http://www.example.com/path-to-new-location/
.htaccess syntax:
RewriteEngine on
RewriteCond %{QUERY_STRING} id=1
RewriteRule ^index\.php$ /path-to-new-location/? [L,R=301]
Redirect URLs with query parameters (files placed in subdirectory)
Original URL:
http://www.example.com/sub-dir/index.php?id=1
Desired destination URL:
http://www.example.com/path-to-new-location/
.htaccess syntax:
RewriteEngine on
RewriteCond %{QUERY_STRING} id=1
RewriteRule ^sub-dir/index\.php$ /path-to-new-location/? [L,R=301]
Redirect one clean URL to a new clean URL
Original URL:
http://www.example.com/old-page/
Desired destination URL:
http://www.example.com/new-page/
.htaccess syntax:
RewriteEngine On
RewriteRule ^old-page/?$ $1/new-page$2 [R=301,L]
Rewrite and redirect URLs with query parameter to directory based structure, retaining query string in URL root level
Original URL:
http://www.example.com/index.php?id=100
Desired destination URL:
http://www.example.com/100/
.htaccess syntax:
RewriteEngine On
RewriteRule ^([^/d]+)/?$ index.php?id=$1 [QSA]
Rewrite URLs with query parameter to directory based structure, retaining query string parameter in URL subdirectory
Original URL:
http://www.example.com/index.php?category=fish
Desired destination URL:
http://www.example.com/category/fish/
.htaccess syntax:
RewriteEngine On
RewriteRule ^/?category/([^/d]+)/?$ index.php?category=$1 [L,QSA]
Domain change – redirect all incoming request from old to new domain (retain path)
RewriteEngine on
RewriteCond %{HTTP_HOST} ^example-old\.com$ [NC]
RewriteRule ^(.*)$ http://www.example-new.com/$1 [R=301,L]
If you do not want to pass the path in the request to the new domain, change the last row to:
RewriteRule ^(.*)$ http://www.example-new.com/ [R=301,L]
#From blog.oldsite.com -> www.somewhere.com/blog/
retains path and query, and eliminates xtra blog path if domain is blog.oldsite.com/blog/
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_URI}/ blog
RewriteRule ^(.*) http://www.somewhere.com/%{REQUEST_URI} [R=302,NC]
RewriteRule ^(.*) http://www.somewhere.com/blog/%{REQUEST_URI} [R=302,NC]

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

Создание WordPress Redirect с помощью плагина

Если вам неудобно редактировать файл .htaccess для перенаправлений в WordPress, не волнуйтесь. Вам и не нужно. Поскольку вы используете WordPress, и для этого есть плагин. Один из лучших называется Quick Page/Post Redirect, и он работает как талисман прямо из коробки.

работает как талисман

Настройка ваших перенаправлений настолько проста, насколько это возможно. После активации «Quick Redirects» (Быстрое перенаправление) добавляет на панель администратора новый элемент «Быстрые перенаправления». Тип перенаправления WordPress по умолчанию – 301 (в конце концов, они наиболее распространены), и вы настраиваете их, просто вводя URL-адрес отправителя и получателя в несколько полей. Нажмите кнопку “Save” (Сохранить), и вы в шоколаде.

и вы в шоколаде

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

И наконец, если вы посмотрите на “Redirect Options” (Параметры Перенаправления), вы увидите абсурдное количество вариантов, которые вы можете сделать, создавая правила, применимые ко всем вашим перенаправлениям, или включая настройки, которые работают с пользовательскими типами записей и метаблоками, и так далее. Этого много, чтобы покрутить своими руками.

вы увидите список

Другой вариант

Я также использовал плагин Redirection в прошлом, прежде чем переключаться на “Quick Redirects”, потому что “Redirection” также позволяет отслеживать страницы 404. Вы можете увидеть, какие страницы отсутствуют, и настроить правило перенаправления WordPress, чтобы каждый, кто посещает их, попадал на действительно полезную страницу.

Другой вариант

Я переключился на другой плагин, потому что я начал отслеживать ошибки 404 через Google Search Console и решил перейти на более простое решение. Если вы хотите использовать и то, и другое в своей панели администрирования, “Redirection” не является плохим способом.

И в заключении

Независимо от того, переместился ли ваш сайт на новое место, вы изменили структуру постоянных ссылок или каким-то образом обновление WP сломало все в вашей установке, и вы начинаете с нуля… иметь практические знания о том, как настроить перенаправление WordPress, очень удобно.

Неважно, если вы любите копаться в файлах ядра платформы или предпочитаете использовать плагины. Оба эффективны и достигают одинаковых результатов в конце. Так что не бойтесь. Начните играть с ними и посмотрите, что работает лучше для вас. Вы можете даже найти способ улучшить рейтинг и СЕО всего за несколько кликов.

Какой ваш предпочитаемый метод настройки перенаправления для ваших сайтов?

На этом все – до скорых встреч!

Вам понравилась статья?
плохохорошо (+1 баллов, 1 оценок)
Загрузка...
Обо мне
Юрич:
Занимаюсь созданием сайтов на WordPress более 6 лет. Работал в нескольких веб-студиях, да и сейчас работаю. Иногда подрабатываю на фрилансе, как на нашем так и на зарубежном. Везде зарекомендовал себя очень хорошо. Если нужен сайт на WordPress, шаблон для сайта или лендинг - не стесняйтесь - пишите. Рад буду помочь!
2 комментария к статье "Как создать перенаправления в WordPress"
  1. Юрич: 23.05.2019 в 13:02 - Ответить

    Спасибо за оперативность!
    Поправил – пробуйте еще раз)))

  2. Сергей: 23.05.2019 в 12:58 - Ответить

    При выставлении оценки статье выходит такая ошибка http://prntscr.com/ns9e2e