Почему из-за слэша в адресе страница не открывается

Если страница вида site.ru/razdel и site.ru/razdel/ ведут себя по-разному — одна открывается, другая отдаёт 404 или редиректит в никуда — дело почти всегда в настройках сервера, а не в самом контенте. Нужно решить, какой вариант (со слэшем или без) считается основным, и настроить редирект на него, а не оставлять оба адреса живыми.

Как проверить, в чём причина

Откройте оба варианта адреса — с завершающим слэшем и без него — и посмотрите код ответа сервера через любой онлайн-чекер заголовков или вкладку Network в браузере. Если один из вариантов отдаёт 404, 500 или бесконечный редирект (слэш то добавляется, то убирается по кругу) — проблема в правилах роутинга или .htaccess/nginx-конфиге, а не в самой странице.

Что делать, если сайт на Apache

В .htaccess обычно добавляют правило принудительного добавления или удаления слэша через mod_rewrite. Частая ошибка — конфликт двух правил: одно добавляет слэш, другое его убирает, из-за чего браузер зацикливается. Проверьте файл на дублирующиеся RewriteRule для одного и того же раздела и оставьте только одно направление редиректа.

Что делать на nginx

  • Проверьте директиву rewrite и наличие trailing slash в location-блоках.
  • Убедитесь, что редирект идёт с кодом 301, а не 302, если это постоянное решение — иначе поисковики будут держать в индексе оба адреса.
  • После правки конфига обязательно перезапустите nginx и очистите кэш браузера/CDN.

Как избежать проблемы в будущем

Задайте canonical-тег на страницах, указывающий на единственный правильный вариант URL (со слэшем или без), и следите, чтобы внутренние ссылки на сайте вели именно на него. Это уберёт дублирование в поиске и лишние прыжки между вариантами адреса для пользователей.

Понравилась статья? Поделиться с друзьями: