World wide web (настройка редиректа между зеркалами с www и без в файле .htaccess) — различия между версиями
Материал из Umicms
XiBOR (обсуждение | вклад) (Новая страница: «Часто, для SEO продвижения или ещё каких либо целей требуется, чтобы сайт всегда открывался …») |
Po4emu4ka (обсуждение | вклад) |
||
(не показано 5 промежуточных версий 3 участников) | |||
Строка 1: | Строка 1: | ||
+ | '''Актуально для версии 2.18''' | ||
+ | |||
Часто, для SEO продвижения или ещё каких либо целей требуется, чтобы сайт всегда открывался только с www.domain.ru или наоборот, без 'www', т.е. domain.ru | Часто, для SEO продвижения или ещё каких либо целей требуется, чтобы сайт всегда открывался только с www.domain.ru или наоборот, без 'www', т.е. domain.ru | ||
Строка 4: | Строка 6: | ||
Находится он в корневой директории и открывается любым текстовым редактором. | Находится он в корневой директории и открывается любым текстовым редактором. | ||
− | Правило следует писать самым первым, | + | Правило следует писать самым первым, перед блоком, обрамленным строками 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} ^ | + | 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} ^ | + | 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]