Подстраницы перенаправляются на главную страницу.

Вопрос или проблема

Несколько дней после установки 6.1.1 некоторые страницы начали перенаправляться на главную страницу. Я переименовал .htaccess, отключил все плагины и использую стандартную тему 2022, чтобы попытаться найти источник 301, но безуспешно. Я проверил curl и обнаружил, что источник перенаправления был помечен как “Wordpress”. Тогда я остановил перенаправление и вывел debug_backtrace, чтобы наконец найти эту вещь. Полагаю, где-то задан канонический URL, но не могу понять, где именно. Любая страница с URL https://stgtrulite.wpengine.com/platform/[anything] получает 301 к https://stgtrulite.wpengine.com. Остальная часть сайта работает, и я могу изменить URL на затронутых страницах, но Google уже индексировал их с этим URL.
Кто-нибудь может мне помочь? Вот дамп:

Redirect attempted to location: https://stgtrulite.wpengine.com/
Array
(
    [0] => Array
        (
            [file] => /nas/content/live/stgtrulite/wp-includes/canonical.php
            [line] => 801
            [function] => wp_redirect
            [args] => Array
                (
                    [0] => https://stgtrulite.wpengine.com/
                    [1] => 301
                )

        )

    [1] => Array
        (
            [file] => /nas/content/live/stgtrulite/wp-includes/class-wp-hook.php
            [line] => 308
            [function] => redirect_canonical
            [args] => Array
                (
                    [0] => https://stgtrulite.wpengine.com/platform/xxx
                )

        )

    [2] => Array
        (
            [file] => /nas/content/live/stgtrulite/wp-includes/class-wp-hook.php
            [line] => 332
            [function] => apply_filters
            [class] => WP_Hook
            [object] => WP_Hook Object
                (
                    [callbacks] => Array
                        (
                            [0] => Array
                                (
                                    [_wp_admin_bar_init] => Array
                                        (
                                            [function] => _wp_admin_bar_init
                                            [accepted_args] => 1
                                        )

                                )

                            [10] => Array
                                (
                                    [wp_old_slug_redirect] => Array
                                        (
                                            [function] => wp_old_slug_redirect
                                            [accepted_args] => 1
                                        )

                                    [redirect_canonical] => Array
                                        (
                                            [function] => redirect_canonical
                                            [accepted_args] => 1
                                        )

                                    [0000000026d0f2cb000000001a0eef68render_sitemaps] => Array
                                        (
                                            [function] => Array
                                                (
                                                    [0] => WP_Sitemaps Object
                                                        (
                                                            [index] => WP_Sitemaps_Index Object
                                                                (
                                                                    [registry:protected] => WP_Sitemaps_Registry Object
                                                                        (
                                                                            [providers:WP_Sitemaps_Registry:private] => Array
                                                                                (
                                                                                    [posts] => WP_Sitemaps_Posts Object
                                                                                        (
                                                                                            [name:protected] => posts
                                                                                            [object_type:protected] => post
                                                                                        )

                                                                                    [taxonomies] => WP_Sitemaps_Taxonomies Object
                                                                                        (
                                                                                            [name:protected] => taxonomies
                                                                                            [object_type:protected] => term
                                                                                        )

                                                                                    [users] => WP_Sitemaps_Users Object
                                                                                        (
                                                                                            [name:protected] => users
                                                                                            [object_type:protected] => user
                                                                                        )

                                                                                )

                                                                        )

                                                                    [max_sitemaps:WP_Sitemaps_Index:private] => 50000
                                                                )

                                                            [registry] => WP_Sitemaps_Registry Object
                                                                (
                                                                    [providers:WP_Sitemaps_Registry:private] => Array
                                                                        (
                                                                            [posts] => WP_Sitemaps_Posts Object
                                                                                (
                                                                                    [name:protected] => posts
                                                                                    [object_type:protected] => post
                                                                                )

                                                                            [taxonomies] => WP_Sitemaps_Taxonomies Object
                                                                                (
                                                                                    [name:protected] => taxonomies
                                                                                    [object_type:protected] => term
                                                                                )

                                                                            [users] => WP_Sitemaps_Users Object
                                                                                (
                                                                                    [name:protected] => users
                                                                                    [object_type:protected] => user
                                                                                )

                                                                        )

                                                                )

                                                            [renderer] => WP_Sitemaps_Renderer Object
                                                                (
                                                                    [stylesheet:protected] => 
                                                                    [stylesheet_index:protected] => 
                                                                )

                                                        )

                                                    [1] => render_sitemaps
                                                )

                                            [accepted_args] => 1
                                        )

                                )

                            [11] => Array
                                (
                                    [rest_output_link_header] => Array
                                        (
                                            [function] => rest_output_link_header
                                            [accepted_args] => 0
                                        )

                                    [wp_shortlink_header] => Array
                                        (
                                            [function] => wp_shortlink_header
                                            [accepted_args] => 0
                                        )

                                )

                            [1000] => Array
                                (
                                    [wp_redirect_admin_locations] => Array
                                        (
                                            [function] => wp_redirect_admin_locations
                                            [accepted_args] => 1
                                        )

                                )

                            [99999] => Array
                                (
                                    [0000000026d0f112000000001a0eef68is_404] => Array
                                        (
                                            [function] => Array
                                                (
                                                    [0] => WpeCommon Object
                                                        (
                                                            [options:protected] => 
                                                        )

                                                    [1] => is_404
                                                )

                                            [accepted_args] => 1
                                        )

                                )

                        )

                    [iterations:WP_Hook:private] => Array
                        (
                            [0] => Array
                                (
                                    [0] => 0
                                    [1] => 10
                                    [2] => 11
                                    [3] => 1000
                                    [4] => 99999
                                )

                        )

                    [current_priority:WP_Hook:private] => Array
                        (
                            [0] => 10
                        )

                    [nesting_level:WP_Hook:private] => 1
                    [doing_action:WP_Hook:private] => 1
                )

            [type] => ->
            [args] => Array
                (
                    [0] => 
                    [1] => Array
                        (
                            [0] => 
                        )

                )

        )

    [3] => Array
        (
            [file] => /nas/content/live/stgtrulite/wp-includes/plugin.php
            [line] => 517
            [function] => do_action
            [class] => WP_Hook
            [object] => WP_Hook Object
                (
                    [callbacks] => Array
                        (
                            [0] => Array
                                (
                                    [_wp_admin_bar_init] => Array
                                        (
                                            [function] => _wp_admin_bar_init
                                            [accepted_args] => 1
                                        )

                                )

                            [10] => Array
                                (
                                    [wp_old_slug_redirect] => Array
                                        (
                                            [function] => wp_old_slug_redirect
                                            [accepted_args] => 1
                                        )

                                    [redirect_canonical] => Array
                                        (
                                            [function] => redirect_canonical
                                            [accepted_args] => 1
                                        )

                                    [0000000026d0f2cb000000001a0eef68render_sitemaps] => Array
                                        (
                                            [function] => Array
                                                (
                                                    [0] => WP_Sitemaps Object
                                                        (
                                                            [index] => WP_Sitemaps_Index Object
                                                                (
                                                                    [registry:protected] => WP_Sitemaps_Registry Object
                                                                        (
                                                                            [providers:WP_Sitemaps_Registry:private] => Array
                                                                                (
                                                                                    [posts] => WP_Sitemaps_Posts Object
                                                                                        (
                                                                                            [name:protected] => posts
                                                                                            [object_type:protected] => post
                                                                                        )

                                                                                    [taxonomies] => WP_Sitemaps_Taxonomies Object
                                                                                        (
                                                                                            [name:protected] => taxonomies
                                                                                            [object_type:protected] => term
                                                                                        )

                                                                                    [users] => WP_Sitemaps_Users Object
                                                                                        (
                                                                                            [name:protected] => users
                                                                                            [object_type:protected] => user
                                                                                        )

                                                                                )

                                                                        )

                                                                    [max_sitemaps:WP_Sitemaps_Index:private] => 50000
                                                                )

                                                            [registry] => WP_Sitemaps_Registry Object
                                                                (
                                                                    [providers:WP_Sitemaps_Registry:private] => Array
                                                                        (
                                                                            [posts] => WP_Sitemaps_Posts Object
                                                                                (
                                                                                    [name:protected] => posts
                                                                                    [object_type:protected] => post
                                                                                )

                                                                            [taxonomies] => WP_Sitemaps_Taxonomies Object
                                                                                (
                                                                                    [name:protected] => taxonomies
                                                                                    [object_type:protected] => term
                                                                                )

                                                                            [users] => WP_Sitemaps_Users Object
                                                                                (
                                                                                    [name:protected] => users
                                                                                    [object_type:protected] => user
                                                                                )

                                                                        )

                                                                )

                                                            [renderer] => WP_Sitemaps_Renderer Object
                                                                (
                                                                    [stylesheet:protected] => 
                                                                    [stylesheet_index:protected] => 
                                                                )

                                                        )

                                                    [1] => render_sitemaps
                                                )

                                            [accepted_args] => 1
                                        )

                                )

                            [11] => Array
                                (
                                    [rest_output_link_header] => Array
                                        (
                                            [function] => rest_output_link_header
                                            [accepted_args] => 0
                                        )

                                    [wp_shortlink_header] => Array
                                        (
                                            [function] => wp_shortlink_header
                                            [accepted_args] => 0
                                        )

                                )

                            [1000] => Array
                                (
                                    [wp_redirect_admin_locations] => Array
                                        (
                                            [function] => wp_redirect_admin_locations
                                            [accepted_args] => 1
                                        )

                                )

                            [99999] => Array
                                (
                                    [0000000026d0f112000000001a0eef68is_404] => Array
                                        (
                                            [function] => Array
                                                (
                                                    [0] => WpeCommon Object
                                                        (
                                                            [options:protected] => 
                                                        )

                                                    [1] => is_404
                                                )

                                            [accepted_args] => 1
                                        )

                                )

                        )

                    [iterations:WP_Hook:private] => Array
                        (
                            [0] => Array
                                (
                                    [0] => 0
                                    [1] => 10
                                    [2] => 11
                                    [3] => 1000
                                    [4] => 99999
                                )

                        )

                    [current_priority:WP_Hook:private] => Array
                        (
                            [0] => 10
                        )

                    [nesting_level:WP_Hook:private] => 1
                    [doing_action:WP_Hook:private] => 1
                )

            [type] => ->
            [args] => Array
                (
                    [0] => Array
                        (
                            [0] => 
                        )

                )

        )

    [4] => Array
        (
            [file] => /nas/content/live/stgtrulite/wp-includes/template-loader.php
            [line] => 13
            [function] => do_action
            [args] => Array
                (
                    [0] => template_redirect
                )

        )

    [5] => Array
        (
            [file] => /nas/content/live/stgtrulite/wp-blog-header.php
            [line] => 19
            [args] => Array
                (
                    [0] => /nas/content/live/stgtrulite/wp-includes/template-loader.php
                )

            [function] => require_once
        )

    [6] => Array
        (
            [file] => /nas/content/live/stgtrulite/index.php
            [line] => 17
            [args] => Array
                (
                    [0] => /nas/content/live/stgtrulite/wp-blog-header.php
                )

            [function] => require
        )

)

И не происходит ли перенаправление в файле .htaccess?

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

Если я ввожу https://stgtrulite.wpengine.com/platform/?123, это перенаправляет на https://stgtrulite.wpengine.com/?123 – так что перенаправление все еще активное где-то.

Что касается Google и их индексации, вы можете использовать их инструмент “удалить из индекса”, который удалит URL из результатов поиска – https://support.google.com/webmasters/answer/9689846?hl=en

Я не уверен, что вы на самом деле хотите удалить его из индекса, только перенаправление, верно? И если это так, и у вас нет плагина, делающего перенаправление, тогда должно происходить либо перенаправление через .htaccess, либо на стороне сервера.

Кажется, я понял. Документация здесь помогла. Когда я сбросил правила перезаписи с установленным проблемным плагином, поведение не изменилось. Когда я удалил все плагины и тему, затем сбросил правила перезаписи, перенаправление наконец ушло. Я смог отследить плагин, который сбивал настройку rewrite_rules в БД, повторив этот процесс.

.

Ответ или решение

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

Теория

В первую очередь важно понимать механизмы, которые могут вызвать перенаправление в WordPress. Среди них:

  1. Канонические URL: Несмотря на то, что они в первую очередь предназначены для указания предпочтительных URL для поисковых систем, в WordPress их можно использовать для перенаправления.
  2. Записи в .htaccess: Этот файл используется веб-сервером для конфигурации перенаправлений и других функций. Неправильные настройки могут привести к перенаправлениям.
  3. Плагины: Множество плагинов, особенно те, что управляют SEO или перенаправлениями, могут создать такие ситуации, когда URL перенаправляется на главную страницу.
  4. Темы: Некоторые темы могут иметь встроенные функциональности перенаправления.

Пример

В вашем случае проблема началась после установки WordPress версии 6.1.1. Это совпадение может означать, что проблема связана с обновлением. Проблема проявляется при попытке доступа к URL, содержащим /platform/[что-либо], которые перенаправляются на главную страницу. Интересно, что удаление .htaccess, отключение всех плагинов и замена темы на стандартную не решило проблему, что может указывать на конфликт на сервере или в базе данных.

Ваше исследование с использованием curl подтвердило, что перенаправления исходят из самого WordPress. Это подводит нас к возможной ошибке в правилах переписывания URL (rewriting rules), которые обрабатываются в конкретной строке кода wp_redirect в canonical.php.

Применение

  1. Проверка правил в .htaccess: Обычно первое место, где стоит искать перенаправления. Поскольку вы уже пробовали удалять/переименовывать этот файл, стоит сосредоточиться на других аспектах.

  2. Административная панель WPEngine: Проверьте, нет ли заданных перенаправлений на уровне платформы хостинга. Иногда службы хостинга предлагают встроенные функции перенаправления, которые можно легко изменить через их интерфейс.

  3. Диагностика плагинов: Хотя вы уже отключили все плагины, попробуйте повторно включить их по одному, каждый раз проверяя, восстанавливается ли проблема. Для этого проделайте процедуру очищения (flush) rewrite rules при активированном плагине и при его отключении, чтобы проверить взаимодействие.

  4. Утилита flush rewrite rules: Воспользуйтесь функцией flush_rewrite_rules(), чтобы обновить настройки правил переписывания URL. Если какие-то плагины или темы регистрируют свои собственные правила, данная процедура может восстановить их в правильном порядке.

  5. Анализ базы данных: При возникновении сложных проблем иногда нужно прибегнуть к просмотру базы данных WordPress напрямую. Убедитесь, что в таблице wp_options нет противоречивых записей для любого заданного URL.

  6. Журналирование и обратная трассировка: Ваша методология отладки через debug_backtrace помогла настроить точное выявление проблемы. Продолжение использования этого подхода с добавлением записей в журнал с более подробной информацией может дать важную подсказку.

Заключение

Важно понимать, что проблемы перенаправления в WordPress часто связаны с несколькими узлами — хостинг, .htaccess, плагины и темы. Использование методического подхода и детального анализа данных журнала, отладки и устранения проблем на уровне кода очень важно. Ваша конечная цель заключается в том, чтобы восстановить правильное обновление SEO и обеспечить, чтобы ваши страницы стали доступными для поисковых систем без ненужных перенаправлений. Таким образом, вы оптимизируете работу вашего сайта, повышаете его индексируемость и, в конечном счете, улучшаете пользовательский опыт.

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

Капча загружается...