Редирект с WWW на без WWW для сайта Bitrix

Эта статья поможет, если перед вами стоит задача сделать редирект для WWW зеркала сайта на CMS Bitrix и вы столкнулись с тем, что после настройки файла .htaccess переадресация идет на https://site.ru:80

301 редирект с домена без WWW на домен с WWW

Для этого редиректа в файле /home/bitrix/www/site.ru/.htaccess добавьте следующие настройки:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} http://%1/$1
RewriteRule ^(.*)$ ^www.(.*)$ [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !/bitrix/urlrewrite.php$
RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L]
RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization}]
</IfModule>

301 редирект с домена с WWW на домен без WWW

Для этого редиректа в файле /home/bitrix/www/site.ru/.htaccess добавьте следующие настройки:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !/bitrix/urlrewrite.php$
RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L]
RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization}]
</IfModule>

Если переадресация идет на https://site.ru:80

Создаём файл .htsecure в корне сайта:

touch /home/bitrix/www/site.ru/.htsecure && chown bitrix.bitrix /home/bitrix/www/site.ru/.htsecure

Добавляем этот код в /home/bitrix/www/site.ru/bitrix/.settings.php в самом начале после строки <?php :

if (($pos = strpos($_SERVER['HTTP_HOST'], ':')) !== false)
{
$HTTP_HOST = $_SERVER['HTTP_HOST'] = substr($_SERVER['HTTP_HOST'],0,$pos);
}
$_SERVER["HTTPS"] = "On";
$_SERVER['SERVER_PORT'] = 443;

Примечание: для старого ядра эти настройки нужно поместить в файл dbconn.php
/home/bitrix/www/site.ru/bitrix/php_interface/dbconn.php

И не забывайте перезапустить nginx и httpd:

systemctl restart nginx && systemctl restart httpd

Оставьте комментарий