Отправить заявку

htaccess удалить несколько слэшей подряд

В больших проектах бывает такое, что ЧПУ собираются очень сложно и при неверной архитектуре ссылки могу содержать несколько слэшей. Например можно получить ссылку http://artkiev.com/blog//. Конечно, что бы этого не происходило код нужно выверять и тестировать. Но, что делать если такая ошибка уже есть и найти быстро ее не удается. На помощь приходит .htaccess

Напишем простой код в htaccess при включенном mod_rewrite:

RewriteCond %{THE_REQUEST} \s/+(.*?)/{2,}([^\s]*)
RewriteRule ^ %1/%2 [R=301,L,NE]

К сожалению этот код неидеален :( Он будет редиректить пользователя после определения такой ошибки в урл. Но как временное решение подойдет, пока не будет полностью отлажен исходный код и не найдена ошибка.

UPDATE: Так же можно на пхп написать велосипедик с фильтром ссылок:

if ( preg_match('!/{2,}!', $_SERVER['REQUEST_URI']) ){
  $url = preg_replace('!/{2,}!', '/', $_SERVER['REQUEST_URI']);
  header('Location: ' . $url , false, 301);
  exit;
}

Правильные ссылки нужно использовать везде. Даже когда пользователь заполнивший форму контактов на сайте и отправил ее - результатирующая страница должна так же быть ЧПУ и не содержать знаков "равно" и "вопросительный знак". Если вам нужна форма обратной связи для сайта ее легко можно скачать в интернете и установить за несколько кликов.

Но следует помнить, что это лишь временное решение!

Другие публикации