World wide web (настройка редиректа между зеркалами с www и без в файле .htaccess) — различия между версиями

Материал из Umicms
Перейти к:навигация, поиск
(Новая страница: «Часто, для SEO продвижения или ещё каких либо целей требуется, чтобы сайт всегда открывался …»)
 
 
(не показано 5 промежуточных версий 3 участников)
Строка 1: Строка 1:
 +
'''Актуально для версии 2.18'''
 +
 
Часто, для SEO продвижения или ещё каких либо целей требуется, чтобы сайт всегда открывался только с www.domain.ru или наоборот, без 'www', т.е. domain.ru
 
Часто, для SEO продвижения или ещё каких либо целей требуется, чтобы сайт всегда открывался только с www.domain.ru или наоборот, без 'www', т.е. domain.ru
  
Строка 4: Строка 6:
 
Находится он в корневой директории и открывается любым текстовым редактором.
 
Находится он в корневой директории и открывается любым текстовым редактором.
  
Правило следует писать самым первым, чтобы оно перекрывало собой все правила UMI.CMS.
+
Правило следует писать самым первым, перед блоком, обрамленным строками UMI_CMS_HTACCESS_BEGIN и UMI_CMS_HTACCESS_END. Обратите внимание, что ваши кастомные инструкции не следует вносить в этот блок, поскольку при обновлении системы он будет полностью заменён на новый.
 +
 
 +
Кириллические домены нужно конвертировать в punycode: https://www.punycoder.com/
  
 
<h2>Для основного домена без www</h2>
 
<h2>Для основного домена без www</h2>
Строка 13: Строка 17:
 
#Проверяем, что текущий хост выглядит как http://www.domain.ru
 
#Проверяем, что текущий хост выглядит как http://www.domain.ru
 
#Флаг NC (No Case), позволяет игнорировать регистр при проверке
 
#Флаг NC (No Case), позволяет игнорировать регистр при проверке
RewriteCond %{HTTP_HOST} ^http://www.domain.ru$ [NC]
+
RewriteCond %{HTTP_HOST} ^www.domain.ru$ [NC]
 
#Перенаправляем запрос на хост без www, 301 редирект
 
#Перенаправляем запрос на хост без www, 301 редирект
 
#Флаг L запрещает дальнейшую обработку правил в этом запросе
 
#Флаг L запрещает дальнейшую обработку правил в этом запросе
Строка 26: Строка 30:
 
#Проверяем, что текущий хост выглядит как http://domain.ru
 
#Проверяем, что текущий хост выглядит как http://domain.ru
 
#Флаг NC (No Case), позволяет игнорировать регистр при проверке
 
#Флаг NC (No Case), позволяет игнорировать регистр при проверке
RewriteCond %{HTTP_HOST} ^http://domain.ru$ [NC]
+
RewriteCond %{HTTP_HOST} ^domain.ru$ [NC]
 
#Перенаправляем запрос на хост c www, 301 редирект
 
#Перенаправляем запрос на хост c www, 301 редирект
 
#Флаг L запрещает дальнейшую обработку правил в этом запросе
 
#Флаг L запрещает дальнейшую обработку правил в этом запросе

Текущая версия на 09:15, 7 июня 2018

Актуально для версии 2.18

Часто, для SEO продвижения или ещё каких либо целей требуется, чтобы сайт всегда открывался только с www.domain.ru или наоборот, без 'www', т.е. domain.ru

Для того, чтобы это реализовать можно добавить простое правило в файл дополнительной конфигурации сервера ".htaccess"
Находится он в корневой директории и открывается любым текстовым редактором.

Правило следует писать самым первым, перед блоком, обрамленным строками UMI_CMS_HTACCESS_BEGIN и UMI_CMS_HTACCESS_END. Обратите внимание, что ваши кастомные инструкции не следует вносить в этот блок, поскольку при обновлении системы он будет полностью заменён на новый.

Кириллические домены нужно конвертировать в punycode: https://www.punycoder.com/

Для основного домена без www

#Включаем работу механизма преобразований.
RewriteEngine On
#Проверяем, что текущий хост выглядит как http://www.domain.ru
#Флаг NC (No Case), позволяет игнорировать регистр при проверке
RewriteCond %{HTTP_HOST} ^www.domain.ru$ [NC]
#Перенаправляем запрос на хост без www, 301 редирект
#Флаг L запрещает дальнейшую обработку правил в этом запросе
RewriteRule ^(.*)$ http://domain.ru/$1 [R=301,L]

Для основного домена с www

#Включаем работу механизма преобразований.
RewriteEngine On
#Проверяем, что текущий хост выглядит как http://domain.ru
#Флаг NC (No Case), позволяет игнорировать регистр при проверке
RewriteCond %{HTTP_HOST} ^domain.ru$ [NC]
#Перенаправляем запрос на хост c www, 301 редирект
#Флаг L запрещает дальнейшую обработку правил в этом запросе
RewriteRule ^(.*)$ http://www.domain.ru/$1 [R=301,L]