Привет. Сегодня рассмотрим важную тему для продвижения. Как добавить слеш в конце url htaccess.

Для начала рассмотрим зачем нужно добавлять слеш в конце url htaccess. Во многих самописных сайтах, и даже многих CMS есть такая беда: ссылка сработает как в виде site.com/url так и в виде site.com/url/. Поисковые роботы будут считать эти ссылки разными, а контент на них одинаковым. Это плохо, дубликаты страниц — враг продвижения.

Что же делать, чтобы избежать дублей?

Трансформировать все ссылки в ссылке, где есть слеш в конце url htaccess. При этом, как следует из заголовка, делать это будет автоматически htaccess, то есть от вас потребуется только скопировать код один раз и всё.


Тем временем, рекомендую всем задуматься над покупкой страховки для вашего авто. Полис ОСАГО и диагностическая карта ОСАГО — вот что нужно дял безопасности дорожного дивжения. Заказал на сайте и поехал.

Как добавить слеш в конце url htaccess

Делается это очень просто.
Просто скопируйте и вставте код в файл .htaccess в корне вашего сайта.

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.html)
RewriteCond %{REQUEST_URI} !(.jpg)
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://www.your-site.ru/$1/ [L,R=301]

Но не забудьте изменить your-site.ru на адрес вашего сайта.
Также обратите внимание, что если у вас главное зеркало сайта без www, то и в коде ссылку нужно делать на без www. Подробнее о том как сделать переадресацию с www на без www.

Рассмотрим немного подробнее код, который добавит слеш в конце url htaccess.

Строкой

RewriteEngine on

Мы говорим Apache, что будем работать с mod_rewrite.

RewriteBase /

Указывает базу для работы. Например, если ваш сайт лежит в подпапке site.com/subfolder/, то RewriteBase должен быть /subfolder/.

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.html)
RewriteCond %{REQUEST_URI} !(.jpg)

Тут мы исключаем из дальнейшей работы запросы к файлам, и особенно .html и .jpg (список можно расширить), для того, чтобы в конце ссылок на html файлы не добавлялся слеш.

RewriteCond %{REQUEST_URI} !(.*)/$

Самое важное условие, которое проверяет, что в конце ссылки нет слеша.

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

Ну и действие, которое выполнится, если пройдут все условия. То есть 301 редирект на страницу со слеш в конце.