Редиректы по замене символов в URL

Редиректы по замене символов в URL

Редиректы через htaccess для автозамены символов

HTTP версия, заменял три дефиса в урле на один дефис

RewriteRule ^(.*)---(.*) /$1-$2 [L,R=301]

HTTPS версия

RewriteRule ^(.*)---(.*) https://site.ru/$1-$2 [L,R=301]

(.*)---(.*) — в данном случае показывает, что до и после --- могут находиться любые символы. Далее мы редиректим на https://site.ru/$1-$2 где между первой частью и второй частью урла вставляем один дефис. В итоге из такого урла

https://site.ru/something---234 получим такой https://site.ru/something-234

Также оставлю еще пару примеров (не проверял, но на их основе делал те, что выше):

Если табуляция и остальные пробельные символы не нужны, то искать пробел так:

RewriteRule "^(.*) (.*)" /$1-$2 [L,R=301]

или

RewriteRule ^(.*)\ (.*) /$1-$2 [L,R=301]

Описание

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

Также иногда система генерирует sitemap с ненужными символами, а поисковой робот сразу всё проиндексировал. Это мой личный опыт, пример которого можно наблюдать в первом редиректе. Когда в sitemap’е почему-то вместо одного дефиса появились три. Не знаю почему так случилось. Страницы с 3 дефисами отдавали 404 ответ сервера, но это не помешало Яндексу закинуть их все в индекс О_о и повесить плашку в Яндекс Вебмастере о наличии почти 500 дублей. Сайт молодой, отправлять по 20 штук в день на переобход в течение месяца не хотелось, в итоге пришлось настроить редирект, который бы с 3 дефисов редиректил на один, после чего все эти урлы склеились и проблема пропала.

Опубликовал(а)Teh
Предыдущая запись
Редирект на главную страницу
Следующая запись
Редирект, чтобы убрать звездочку в URL
Добавить комментарий
Ваш электронный адрес не будет опубликован. Обязательные поля помечены *