Как избавиться от технических дублей?
Подскажите правила для htaccess, чтобы убрать следующие дубли.
-
В блоге случайно добавленные цифры в конце адреса, например:
example.com/kak-snegovik-v-adu/59030 — приводят к дублированию.
Запрос с любыми цифрами после заключительного слеша возвращает 301, далее 200:
example.com/kak-snegovik-v-adu/59030/ -
Тоже в блоге: example.com/KAK-SNEGOVIK-V-ADU/
Запрос с ПРОПИСНЫМИ символами в адресе сразу возвращает 200.
Должно быть: example.com/kak-snegovik-v-adu/ -
В статьях, любые добавленные цифры дают ответ 200.
example.com/stories/russian-poetry/07 — статус 301 и редирект на:
example.com/stories/russian-poetry/7/ -
Тоже в статьях, запрос с ПРОПИСНЫМИ символами в любой части адреса, кроме домена, тоже срабатывает.
example.com/STORIES/russian-poetry/ — 200
example.com/stories/RUSSIAN-POETRY/ — 200 -
Тоже в статьях:
example.com/russian-poetry/stories/
— меняем порядок вложенности, получаем 301 на адрес:
example.com/stories/ - Страницы вложений:
example.com/wp-content///////uploads//... — тоже странность. Везде множественные слеши режутся, кроме адресов вложений (проще говоря, адресов картинок).
Теперь, собственно вопрос: каким образом всё это исправить?
При условии, что хостинг виртуальный и доступа к настройкам сервера нет. Можем использовать только .htaccess. Править код ВордПресс крайне нежелательно, чтобы не подпрыгивать при каждом обновлении.
И да, я в курсе, что часть перечисленного можно устранить при помощи плагинов (например, капслок), но хочется выработать комплексное решение. Тем более, что приведённую схему урлов я проверил на нескольких сайтах — проблемы аналогичные.
Последняя задача решена. Только что прислали такой вариант:
RewriteCond %{THE_REQUEST} // # Проверяем, повторяется ли слеш (//) более двух раз. RewriteCond %{QUERY_STRING} !http(s|):// # Убедимся что это не урл в GET RewriteRule .* /$0 [R=301,L] # Исключаем все лишние слеши.
Сработало.
попробуйте
BBQ: Block Bad Queries
там есть несколько проверок по урл связанные с ///////(что решено видел) и ++++ может что-то еще подойдет