X
Меню сайта
GreenB
Войдите с помощью одной из соцсетей
Или с помощью нашего сайта
Зарегистрироваться Войти
Обратная связь

Обратная связь

Добавление и удаление слэша в конце URL

 удаление слэша в конце URLНужен или нет слэш в конце url 

Очень часто начинающие веб архитекторы, ну или строители как вам больше нравится, задаются вопросом, как оформлять адрес сайта. Одна из делем нужнен ли слэш в конце url. Нужен или нет — это вопрос неоднозначный, и вы можете до хрипоты спориться с каким-нибудь гуру, и так и не придете к единому мнению. Но одно вам скажу точно.  Нужно выбирать или так или эдак. Иначе поисковик одну и ту же страницу проиндексирует дважды. И для, например, Яндекса это будут две разные по адресу страницы с идентичным текстом. Соответственно поисковые системы могут подумать (не удивлюсь что они уже умеют это делать) что страница не очень важна раз существует дубль.  

Для поисковиков важна уникальность текста — это аксиома, которая не нуждается в пояснении. Но иногда, ошибки движка, могут (особенно этим грешит WordPress) свести на нет весь труд владельца сайта. Дубли страниц — это бич многих CMS. Мы в своем продукте эту проблему решили раз и навсегда. 

Слэш в конце URL 

Итак, чтобы добавить слэеш в конец url, в самом начале вашего индексного файла или файла единой точки входа, добавьте следующий код 

$exp = explode('?', $_SERVER['REQUEST_URI']);
if ( mb_substr($exp[0], -1) != '/' ) {
  header('HTTP/1.1 301 Moved Permanently');
  header('Location: ' . $exp[0] . '/' . (!empty($exp[1]) ? '?' . $exp[1] : ''));
  exit();
}

Немного пояснения. Код проверяет если слэш или нет и если его нет то происходит 301 редирект на версию со слэшем 

Удаление слэша 

$uri = preg_replace("/?.*/i",'', $_SERVER['REQUEST_URI']);
if (strlen($uri)>1) {
 if (rtrim($uri,'/')!= $uri) {
    header("HTTP/1.1 301 Moved Permanently");
    header('Location: https://'.$_SERVER['SERVER_NAME'].str_replace($uri, rtrim($uri,'/'), $_SERVER['REQUEST_URI']));
    exit();
 }
}

Тут происходит то же самое с той лишь разницей что редирект происходить на вариант без слэша 

Как видите ничего сложного тут нет. Но предупреждаю, на простеньком хостинге могут возникнуть проблемы из-за редиректа. Например, на Бегете, на тарифе старт, у меня такая проблема возникла. Но после перехода на VPS она решилась сама собой.  

Кстати рекомендую переходить на выделенный сервер. Это хоть и немного проблематично в обслуживании, зато имеет много плюсов. Как это сделать в следующих статьях.  

 

🔥
0
🚀
0
0
👎
0
Новое на сайте