Иногда нужны переадресации с одного доменного имени на другой, либо тот же самый, но с какими-то особенностями, вроде, как www. или слеш в конце url-строки. Все это помогает оптимизировать СЕО и улучшить понимание сайта роботами однозначно без двусмысленностей.
Вот первый вопрос:
Как сделать переадресацию с сайта с www.site.ru на домен без www (то есть site.ru)? Пример .htaccess
Для переадресации с домена с www на домен без www с использованием файла .htaccess, можно использовать следующий код:
Apache config
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
RewriteEngine On: Включает механизм перезаписи URL.
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]: Условие, которое проверяет, начинается ли запрашиваемый хост с www.. ^ указывает на начало строки, а (.*) захватывает остальную часть домена. Флаг [NC] означает, что проверка не чувствительна к регистру.
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]: Правило, которое выполняет переадресацию. %1 ссылается на захваченную часть домена без www, а $1 — на остальную часть URL. Флаг [R=301,L] указывает, что это постоянная переадресация (301) и что это последнее правило, которое нужно обработать.
mod_rewrite включен на Вашем сервере..htaccess, рекомендуется протестировать переадресацию, чтобы убедиться, что она работает корректно.Второй вопрос:
Настроить 301 редирект со страниц без оканчивающегося слеша на страницы со слешем. Например: с https://site.ru на https://site.ru/ Пример на .htaccess
Для настройки переадресации с домена с www на без www, а также для 301 редиректа со страниц без оканчивающегося слеша на страницы со слешем, Вы можете использовать файл .htaccess, который находится в корневом каталоге Вашего сайта. Вот пример кода, который Вы можете использовать:
Apache config
RewriteEngine On
# 301 редирект с www на без www
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
# Редирект со страниц без слеша на страницы со слешем
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.[^/])$ https://site.ru/$1/ [R=301,L]
RewriteEngine On: Включает модуль мод_rewrite, который позволяет выполнять переадресации.
301 редирект с www на без www:
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]: Проверяет, если запрашиваемый хост начинается с www.RewriteRule ^(.*)$ https://%1/$1 [R=301,L]: Переадресует на тот же URL, но без www.Редирект со страниц без слеша на страницы со слешем:
RewriteCond %{REQUEST_FILENAME} !-f: Проверяет, что запрашиваемый файл не существует.RewriteCond %{REQUEST_FILENAME} !-d: Проверяет, что запрашиваемая директория не существует.RewriteRule ^(.+[^/])$ https://site.ru/$1/ [R=301,L]: Добавляет слеш к URL, если его нет в конце.mod_rewrite на Вашем сервере Apache.