Вопрос или проблема
301 редирект происходит, и перенаправленный URL теряет параметры, передавая строку запроса через URL.
Когда я пытаюсь передать строку запроса “type=Brochure”, как показано в следующем URL
https://www.edgeverve.com/resources/?type=Brochure
Он перенаправляется на https://www.edgeverve.com/resources/,
и строка запроса теряется.
Но это работает нормально, если я изменю поддомен с www
(оба URL www и test доступны для тестирования, попробуйте заменить www на test)
Я не могу понять, почему этот редирект происходит в случае www.
Примечание:
Мы не смогли решить проблему, даже следуя шагам ниже:
– Все URL в БД правильные.
– Мы пробовали ту же настройку на локальном сервере (с записью в файле hosts, сопоставляющей edgeverve.com)
– Мы пытались обновить WordPress до 4.8
– Также мы пытались решить это через .htaccess
Столкнулся с той же проблемой. В моем случае фильтр WooCommerce использует get параметры для сохранения настроек фильтрации продуктов. В любом случае
Как было упомянуто @sudarshan-g-hedge, редирект был вызван плагином Yoast SEO
Причина – настройки оптимизации обхода‘s очистки URL в этом плагине
Чтобы предотвратить такие редиректы, вам нужно выполнить следующие действия:
- перейти в панель администратора
- открыть “Yoast SEO” -> “Настройки”
- перейти к заголовку “Дополнительно” и выбрать там “Оптимизация обхода”
- прокрутить до раздела “Дополнительно: очистка URL”
- добавить необходимые get параметры (например,
type
, как в вопросе) в поле “Дополнительные параметры URL для разрешения” - сохранить изменения
Проблема была решена отключением плагина Yoast SEO. Какова может быть причина, по которой плагин Yoast SEO вызывает эту проблему?
Ответ или решение
Проблема, с которой вы столкнулись, заключается в том, что при редиректе 301 теряются параметры запроса в URL. Это ситуация, когда запрос к вашему сайту с параметрами, такими как type=Brochure
, перенаправляется на URL, где эти параметры не передаются, например, с https://www.edgeverve.com/resources/?type=Brochure
на https://www.edgeverve.com/resources/
.
Причины проблемы:
-
Проблемы конфигурации плагина Yoast SEO:
Как вы правильно заметили, проблема может возникнуть из-за настроек плагина Yoast SEO, особенно в разделе "Оптимизация краулинга" (Crawl Optimization). Этот плагин может иметь активированные параметры очистки URL, которые удаляют ненужные параметры, чтобы сделать URL более лаконичными. Это и может быть причиной потери параметров запроса при редиректе. -
Настройки плагина и базы данных:
Иногда может быть общая проблема с конфигурацией URL в базе данных, когда сохраняются только "чистые" URL без параметров. Кроме того, если кэширование включено, это также может вызвать запутанность в редиректах, поскольку кэшированные версии URL могут не содержать актуальные параметры.
Решения:
-
Добавление параметра в Yoast SEO:
Для решения проблемы, как вы уже заметили, нужно зайти в админку WordPress, затем в настройки Yoast SEO, в разделе "Расширенные" переходим к "Оптимизация краулинга" и в секцию "Очистка URL" добавляем необходимый параметр (type
). Это позволит плагину не удалять этот параметр из URL, когда выполняется редирект. -
Отключение плагина:
Если после выполнения всех необходимых настроек проблема не решается, вы можете временно отключить плагин Yoast SEO, чтобы проверить, исчезает ли проблема. Если после отключения редиректы работают корректно и параметры передаются, это подтверждает, что именно плагин вызывает конфликт. -
.htaccess настройки:
При необходимости вы можете проверить настройки .htaccess для вашего сайта. Убедитесь, что в этих настройках нет правила, которое может влиять на параметрtype
в строке параметров URL. Если правила перенаправления написаны неверно, это может вызвать потерю параметров при редиректах.
Заключение:
Тщательное изучение настройков вашего плагина, конфигурации базы данных и кода на уровне сервера поможет решить вашу проблему с потерей параметров запроса при 301 редиректе. Поскольку работа с URL и их параметрами критически важна не только для функциональности сайта, но и для SEO, целесообразно тщательно отслеживать такие изменения. Хорошее понимание работы плагинов, таких как Yoast SEO, а также использование инструментов диагностики (таких как консоль разработчика или логирование серверных ответов) может помочь вам избежать подобных ситуаций в будущем.