С 404 по 301 - Исправление старых ссылок


В настоящее время я обновил сайт и внес в него множество улучшений. Старый сайт работал с 3 разными системами и имел wordpress (и другие системы) в веб-корне. Я переместил wordpress в подкаталог (wordpress), а также обновил свои записи в блоге, чтобы они имели префикс blog/. Страницы и первая страница не имеют префикса blog/.

Проблема, с которой я сталкиваюсь, заключается в том, что я хочу изящно сообщить Google и другим поисковым системам, что эти сообщения теперь имеют префикс с помощью /блога/.

Я использовал следующий код на своей странице 404, прежде чем понял, что wordpress выдает заголовок 404. Очевидно, что это неправильный способ реализации этого исправления.

// Check if old site URL and redirect if so
if (substr($s, 0, 8) != 'reviews/') {
    if (substr($s, 0, 5) != 'blog/' && substr($s, 0, 10) != 'wordpress/' ) {
        // Force our 301 redirect so we can keep the new URI: /blog/
        header("HTTP/1.1 301 Moved Permanently");
        header("Location: /blog/{$s}");
        exit();
    }
}

Что мне нужно сделать, так это выяснить, когда wordpress узнает, что это 404, и посмотреть, соответствует ли он моим проверкам (в настоящее время то, что указано в приведенном выше фрагменте), и если произойдет совпадение, принудительно перенаправьте 301 для обновления искателей.

Я не уверен, доступна ли эта информация на init, так как это мой следующий шаг к тест.

Я пытался играть с template_redirect и redirect_canonical, но, похоже, они не являются правильными методами для подключения.

Мы будем признательны за любую помощь в этом вопросе. Я все еще пытаюсь найти решение и отправлю ответ, когда найду его.

Заранее благодарю.

Author: Jeremy, 2012-11-05

1 answers

Если вы намерены выполнять проверки на основе тегов шаблона , вам следует подключиться к действию wp. template_redirect тоже будет достаточно, но wp - это раньше. Это когда WP обрабатывает 404 сам. Для выполнения перенаправления 301 используйте status_header( 301 );, wp_safe_redirect(); сразу же за этим последовал exit;

Вы могли бы использовать плагин , который обработает их для вас. Это немного сложно настроить, если вы не настолько техничны. Удачи.

 2
Author: Z. Zlatev, 2012-11-05 21:12:02