Вопрос или проблема
Сегодня я заметил это на каждом сайте WordPress. Когда я ввожу %20 в URL любой страницы до или после, за исключением корневого домена, открывается аналогичная страница, тогда как должна быть показана страница 404 not found. Может кто-нибудь решить эту проблему? Дополнительные перенаправления также не работают.
Пример:
https://islamicqurancenter.com/courses/learn-noorani-qaida-online/
Дублирование:
https://islamicqurancenter.com/courses/learn-noorani-qaida-online%20/
ИЛИ:
https://islamicqurancenter.com/courses/%20learn-noorani-qaida-online/
Ответ или решение
Проблема, описанная вами, связана с использованием в URL кодировки символа пробела как %20
, что фактически представляет собой проблему канонизации URL. Когда различные версии одного и того же URL вызывают отображение одной и той же страницы, это может привести к возникновению нескольких проблем, таких как дублирование контента для поисковых систем. Рассмотрим, как можно решить эту проблему в контексте WordPress.
Теория
Символ %20
в URL является кодированной версией пробела. Когда в URL добавляется пробел (или кодированный %20
), сервер обрабатывает его как часть пути к ресурсу и, если правило маршрутизации сервера позволяет, успешно отображает страницу. Это может создать проблему дублирующего контента, поскольку отдельные страницы могут быть доступны через несколько URL-адресов.
Причины проблемы:
- Настройки сервера. Сервер может быть настроен так, что он не различает URL с кодированием символов пространств и без.
- Маршрутизация в WordPress. WordPress обрабатывает пути URL благодаря своему механизму пермалинков, но может не являться достаточно строгим в отношении лишних символов.
- SEO последствия. Дублированный контент может негативно сказаться на SEO рейтинге, так как поисковые системы могут рассматривать такие страницы как повторяющиеся понятия, что снижает универсальность и авторитет ресурса.
Пример
Изначальная ссылка: https://islamicqurancenter.com/courses/learn-noorani-qaida-online/
Дубль с %20
перед URL: https://islamicqurancenter.com/courses/%20learn-noorani-qaida-online/
Дубль с %20
после URL: https://islamicqurancenter.com/courses/learn-noorani-qaida-online%20/
Как видно из вышеуказанных примеров, добавление %20
до или после любой части URL создает отдельный доступ к странице, что не является ожидаемым поведением.
Применение
Чтобы устранить эту проблему, вы можете предпринять следующие шаги:
-
Использование редиректов на уровне сервера. На уровне конфигурации сервера (например, Apache или Nginx) можно настроить редиректы, которые будут перенаправлять любые URL с
%20
на оригинальные канонические URL без%20
.- Apache: В файле
.htaccess
можно добавить правило перенаправления:RewriteEngine On RewriteCond %{THE_REQUEST} "^[A-Z]{3,9}\ /.+\%20.*\ HTTP/" [NC] RewriteRule ^(.*)\%20(.*)$ /$1$2 [L,R=301]
- Nginx: Можно добавить правило в конфигурацию:
server { if ($request_uri ~* "%20") { return 301 $scheme://$host$request_uri; } }
- Apache: В файле
-
Использование плагинов в WordPress. Существует множество плагинов для SEO и канонизации ссылок, которые могут помочь решить эту задачу, например, Yoast SEO или Redirection. Через них можно настроить правила канонических URL.
- Примите за практику регулярную проверку и настройку всех URL-адресов пересекающегося контента.
-
Канонические теги. Убедитесь, что все страницы вашего сайта имеют корректно установленные канонические теги, чтобы помочь поисковым системам распознать правильную версию страницы.
-
Мониторинг и тестирование. Используйте инструменты вебмастера, такие как Google Search Console, для отслеживания проблем с дублированием контента и тестирования правильности выполнения 301 редиректов.
Эти шаги помогут вам обеспечить, что ваш WordPress сайт более надежно обрабатывает URL без дублирования страниц и способствует улучшению SEO без использования лишних и несогласованных ссылок.