Задать вопрос Связаться с нами
  • Главная
  • Услуги
    • Исправление ошибок
    • Доработка сайтов
    • Обслуживание сайтов
    • Техподдержка сайтов
    • Веб-разработка
    • Интернет-магазины
  • Модули
    • Антирутин
    • SEO - мастер
    • SMS-уведомления
    • Утилиты от «Webdebug»
    • SMS-сообщения (Lite)

    • Все наши модули

    • Все модули Битрикс:Marketplace
  • Акции
  • Поддержка
  • Блог
  • О нас
    • Отзывы
    • Новости
    • Реквизиты

    • Контакты
  • Главная
  • Услуги
    • Исправление ошибок
    • Доработка сайтов
    • Обслуживание сайтов
    • Техподдержка сайтов
    • Веб-разработка
    • Интернет-магазины
  • Модули
    • Антирутин
    • SEO - мастер
    • SMS-уведомления
    • Утилиты от «Webdebug»
    • SMS-сообщения (Lite)

    • Все наши модули

    • Все модули Битрикс:Marketplace
  • Акции
  • Поддержка
  • Блог
  • О нас
    • Отзывы
    • Новости
    • Реквизиты

    • Контакты
Главная
Блог
Общее о создании сайтов
Редиректы для сайта (сайт с www, без www и др)

Редиректы для сайта (сайт с www, без www и др)

Управление редиректами - задача, которую требуется решать на каждом проекте. Наиболее частые примеры задач:

  1. сайт открывается как www.site.ru и как site.ru, а нужно только www.site.ru,
  2. сайт открывается как www.site.ru и как site.ru, а нужно только site.ru,
  3. на сайт ссылается много доменов, нужно чтобы все домены вели только на один выбранный,
  4. сайт должен переводить пользователей с протокола http на https.

Большинство владельцев сайтов, и даже некоторые начинающие разработчики не знают, как же решать подобные задачи.

А решаются они достаточно просто - через файл .htaccess в корне сайта. Могу заметить, что сама по себе эта тема достаточно сложная, но в сети можно найти достаточно «рецептов» на все случаи жизни.

Хочу сразу предупредить - этот файл нельзя редактировать через админку сайта! Почему? Все очень просто - этот файл подключается при открытии любых страниц сайта, поэтому если редактируете через текстовый редактор сайта, то любая ошибка (в т.ч. опечатка) в этом файле приведет к тому, что весь сайт упадет, и возможности исправить тем же способом уже не будет. Поэтому, редактируйте этот файл только через FTP/SSH.

А теперь сами рецепты.

Как сделать, чтобы сайт site.ru открывался как www.site.ru

RewriteCond %{HTTP_HOST} ^(.*)$ [NC]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]

Как сделать, чтобы сайт www.site.ru открывался как site.ru

RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

Как сделать, чтобы сайт открывался только по одному адресу

RewriteCond %{HTTP_HOST} !^site.ru$ [NC]
RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]

Как сделать редирект из раздела сайта на другой сайт

Redirect 301 /ru http://example.com/ru

Как сделать редирект чтобы в конце добавлялся слеш

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^.]+)(?<!/)$ /$1/ [R=301,L]

Как сделать редирект с http на https

RewriteCond %{HTTPS} off
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Если стандартный редирект http на https не работает:

RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]

Как сделать редирект с /index.php на / (не только для главной)

RewriteCond %{REQUEST_METHOD} =GET
RewriteCond %{THE_REQUEST} ^.*/index\.php
RewriteRule ^(.*)index.php$ /$1 [R=301,L] 

Как удалить лишние слеши после домена

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

Если нужно чтобы сайт открывался только по https://www.site.ru - альтернативный вариант

RewriteCond %{HTTP_HOST} ^site.ru$ [NC]
RewriteRule ^(.*)$ https://www.site.ru%{REQUEST_URI} [R=301,L]
	
RewriteCond %{SERVER_PORT} !^443$ [NC]
RewriteRule .* https://www.site.ru%{REQUEST_URI} [R=301,L]

RewriteCond %{SERVER_PORT} 443
RewriteCond %{HTTP_HOST} !^www[.].+$
RewriteRule .* https://www.site.ru%{REQUEST_URI} [R=301,L]

Автор: Денис Сон
Дата публикации: 12.05.2017
Просмотров: 9082

Комментарии

Андрей
19.05.2020 20:27:10
а если вообще нет этого файла, как его создать?
Ответ администрации:
Добрый день. Это обычный текстовый файл, поэтому файл создается любым текстовым редактором.и загружается в корень сайта.
angel
14.04.2019 21:55:24
подскажите, а как сделать редирект всех записей целой рубрики с одного сайта в аналогичную рубрику другого, т.е. чтобы все записи (относит.урл одинаковый) открывались на другом сайте.
Ответ администрации:
Добрый день. Попробуйте так:
RewriteCond %{REQUEST_URI} ^/myrubric/.*$
RewriteRule ^(.*)$ http://mynewsite.ru/$1 [L,R=301]
Eduard
08.03.2018 16:30:06
Спасибо огромное!
Иван
05.06.2017 10:17:51
Ух, спасибо, выручили! У меня были немного другие примеры, но они не очень хорошо работают
111111111
04.06.2017 11:08:11
Не хватает самого главного - редиректа 301.
Денис
02.06.2017 19:20:46
Спасибо. То что нужно
Нина
25.05.2017 10:53:42
Кстати, Ваш вариант редиректа .htaccess из http:// на https:// очень хоороший! Поменяла на своем сайте его и теперь пока лучше работает!
Нина
24.05.2017 19:10:59
Спасибо большое авторам блога!
Сергей
16.05.2017 12:46:50
Спасибо, очень выручили

Категории блога:

  • 1С-Битрикс 10
  • Общее о создании сайтов 13
  • HTML, CSS, JS, jQuery 2
  • Без категории 9
Ссылки
  • Главная
  • Модули
  • Акции
  • Услуги
  • Отзывы
  • Блог
  • Новости
  • Контакты
  • Реквизиты
Поиск по сайту
Наши контакты

По всем вопросам обращайтесь:

Электронная почта: info@webdebug.ru

Telegram: webdebug

Форма обратной связи

Webdebug Bitrix certified
Webdebug QR-code
© ООО «Веб дебаг», 2011 – 2025. Политика конфиденциальности.
×
У Вас вопрос?
Загрузка ...
×
Связаться с нами
Загрузка ...
×
Комментарий к статье
Загрузка ...