Тема: Редирект через .htaccess
В каких случаях подойдет .htaccess-редирект
Чтобы понять, для каких целей лучше подходит .htaccess-редирект, разберёмся, что такое .htaccess.
.htaccess — этот системный файл, который принадлежит корневой структуре сайта. В отличие от главного конфигурационного файла, который позволяет выполнять настройку веб-сервера в целом, .htaccess даёт возможность изменять настройки для отдельно взятых папок и пользователей.
Файл .htaccess позволяет вариативно настроить сайт. Действие команд из .htaccess распространяется на папки и подкаталоги, расположенные в одной директории с этим файлом. Если для какой-либо вложенной директории нужны иные инструкции, в ней также можно создать .htaccess. Если .htaccess расположен в корневой директории сервера, его действие распространяется на весь сервер, кроме тех директорий, где находится другой файл .htaccess.
Таким образом, через .htaccess можно сделать перенаправление точечно, а не сразу для всего ресурса. Этот вариант отлично подойдет в том случае, если вам нужно настроить переадресацию только для одной или нескольких страниц сайта.
Если вы хотите переадресовать домен с WWW на без WWW, укажите:
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} !^/bitrix/admin/1c_exchange\.php$ [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.site\.ru$ [NC]
RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]
</IfModule>
Если вам нужно сделать редирект Bitrix с домена без WWW на WWW, введите комбинацию:
RewriteCond %{ENV:HTTPS} on
RewriteRule .* - [E=SSL:s]
RewriteCond %{HTTP_HOST} !^www\.(.*) [NC]
RewriteRule ^(.*)$ http%{ENV:SSL}://www.%{HTTP_HOST}/$1 [R=301,L]
Если вы хотите настроить в Битрикс редирект на другую страницу с http:// на https://, пропишите:
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} !^/bitrix/admin/1c_exchange\.php$ [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
301 редирект с одного домена на другой
RewriteEngine On
RewriteCond %{HTTP_HOST} old-site.ru
RewriteRule (.*) http://new-site.ru/$1 [R=301,L]
301 редирект с одной страницы на другую
RewriteEngine On
RewriteCond %{HTTP_HOST} site.ru/old-page
RewriteRule (.*) http://site.ru/new-page$1 [R=301,L]
301 редирект с домена без WWW на домен с WWW
RewriteEngine On
RewriteCond %{HTTP_HOST} ^site.ru
RewriteRule (.*) http://www.site.ru/$1 [R=301,L]