Как запретить автоматические редиректы WordPress?

WordPress имеет функцию, благодаря которой он автоматически перенаправляет ваши URL, т.е. делает редирект, если считает, что адрес написан неправильно. Он подбирает самостоятельно “подходящий” url и редиректит на него.

Возьмем пример. У нас есть страница под названием my-page. Если мы обращаемся к ней по вот такому адресу:

www.mysite.com/something/my-page/

WordPress сразу же перенаправит на:

www.mysite.com/my-page/

Это происходит, т.к. по первому адресу страницы не существует и WordPress автоматом перенаправляет на второй url. Это не очень удобно, точнее – не очень контролируемый процесс даже с точки зрения SEO.

Как можно отключить эту функцию и вместо редиректа получать страницу с 404 ошибкой?

На самом деле ответ очень простой. Мы добавляем в файл functions.php вот такую строчку кода:

remove_action('template_redirect', 'redirect_canonical');

Но стоит сделать важное замечание. Если вы понаблюдаете, что происходит (через HttpFox, WireShark или аналогичный анализатор пакетов), то страницы автоматически перенаправляются с помощью 301 редиректа (“перемещено навсегда”), что является вполне подходящим поведением.

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

Будьте аккуратны. Это может повлиять на то, как WordPress обрабатывает процессы. В любом случае, – это ваш выбор, но не все уверены в том, что это хорошая идея.

Если посмотреть на функцию redirect_canonical в canonical.php, то вы также можете изменить поведение с помощью своего собственного фильтра.

В конце функции redirect_canonical() есть вызов для фильтрации окончательного ответа:

$redirect_url = apply_filters( 'redirect_canonical', $redirect_url, $requested_url );

Таким образом, вы можете написать свой собственный фильтр для изменения окончательного перенаправления или вернуть значение null, чтобы остановить перенаправление на основе ввода, тем самым отключив функцию для определенного URL-адреса или подмножества URL-адресов.

Наверх ↑

Сергей Ермилов

15 апреля в 14:28 Посты,

Создаю веб-проекты, придумываю идеи, занимаюсь разработкой, оптимизирую и продвигаю сайты. Первые шаги в этом направлении сделал в 2008 году.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вы можете использовать HTML теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Технологии

Статьи по теме Wordpress Статьи по теме PHP Статьи по теме Python Статьи по теме Javascript Статьи по теме Bootstrap Статьи по теме Git Статьи по теме Node JS