На главную
- Инструкции для UNIX-систем
- Обзор
- Подключение к серверу по SSH
- Подключение к серверу по SFTP
- Авторизация по SSH-ключу
- Смена или сброс пароля root
- Смена пароля root для MySQL
- Добавление пользователей
- Управление правами доступа
- Защита SSH от подбора пароля. Fail2ban
- Создание дампа базы и восстановление данных
- Установка LAMP на Ubuntu
- Установка phpMyAdmin на Ubuntu с LAMP
- Установка SSL-сертификата на Nginx
- Установка модулей PHP (CentOS)
- Установка модулей PHP (Debian / Ubuntu)
- Настройка параметров PHP (CentOS)
- Настройка параметров PHP (Debian / Ubuntu)
- Настройка перенаправлений
- Настройка перенаправлений (Nginx)
- Настройка FTP в Ubuntu 20.04
- Оптимизация MySQL с помощью MySQLTuner
- Сканирование с помощью ClamAV
- Управление службами в systemd
- Логирование в systemd
- Аудит системных событий
- Добавление дополнительного IP
- Настройка статического IP
- Добавление и удаление диска
- Изменение размера диска
- Монтирование резервных копий
- Создание swap, изменение его размера
- Установка и удаление программ. Менеджеры пакетов
- Установка графической оболочки XFCE на Ubuntu
- Настройка iptables
- Настройка OpenVPN
- Установка произвольной ОС на сервер
- Удаленный доступ к MySQL
- Установка QEMU-агента
- Установка Zabbix-агента
- Установка и работа с PostgreSQL
- Установка почтового сервера iRedMail
- Настройка почтового сервера iRedMail
- Установка SSL на сервер с Keitaro
- Запуск Wordpress на сервере c Ubuntu
- Запуск бота в фоновом режиме
- Установка сертификатов Минцифры
- Подготовка образа для создания облачного сервера
- Создание и развертывание образа с помощью утилиты dd
- Установка Minecraft на CentOS 7
- Запуск сервера Minecraft
- Запуск сервера с CS 1.6 и EngineGP
- Запуск сервера RageMP
- Настройка Outline VPN
- Диагностика и решение проблем
- Инструкции для Windows
- Панели управления
Настройка перенаправлений
В статье приведены примеры стандартных перенаправлений, которые могут быть настроены с помощью файла .htaccess
вашего сайта.
Указанные перенаправления будут работать:
- для большинства конфигураций VDS, где используется веб-сервер Apache (необходимо, чтобы модуль
mod_rewrite
был включен); - для серверов с VestaCP или ISPmanager, установленными через панель управления аккаунтом. В ISPmanager простые перенаправления могут также быть настроены средствами панели.
Обратите внимание, что данные редиректы не подойдут для OS Bitrix7.
Директивы необходимо указывать в .htaccess
в блоке <IfModule mod_rewrite.c>
со следующим содержимым:
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine on
#Ваши правила
</IfModule>
В качестве правил указываются директивы RewriteCond
и RewriteRule
с необходимыми значениями — RewriteCond
задает условие, при котором происходит выполнение правила, указанного в RewriteRule
.
Перенаправление на другой домен
В примере ниже выполняется редирект с www.old-domain.ru на www.new-domain.ru:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.)?old-domain\.ru$
RewriteRule ^(.*)$ http://www.new-domain.ru/$1 [R=301,L]
Перенаправление c http на https
1. Перенаправление с http://example.ru на https://example.ru.
RewriteBase /
RewriteCond %{HTTPS} !on
RewriteCond %{HTTP_HOST} ^example.ru$
RewriteRule ^(.*)$ https://example.ru/$1 [R=301,L]
1a. Для серверов с панелью VestaCP:
RewriteCond %{SERVER_PORT} !^443$
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
1b. Для серверов с панелью ISPmanager при использовании Nginx:
RewriteBase / RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
2. Перенаправление с http://example.ru на https://www.example.ru.
RewriteBase /
RewriteCond %{HTTPS} !on
RewriteCond %{HTTP_HOST} ^example.ru$
RewriteRule ^(.*)$ https://www.example.ru/$1 [R=301,L]
3. Перенаправление с http://www.forum.example.ru на https://forum.example.ru.
RewriteCond %{HTTP_HOST} ^www\.forum\.example\.ru$ [NC]
RewriteRule ^(.*)$ https://forum.example.ru/$1 [R=301,L]
RewriteBase /
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
4. Перенаправление с http://forum.example.ru на https://www.forum.example.ru.
RewriteCond %{HTTP_HOST} ^forum\.example\.ru$ [NC]
RewriteRule ^(.*)$ https://www.forum.example.ru/$1 [R=301,L]
RewriteBase /
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
Перенаправление с https на http
RewriteBase /
RewriteCond %{HTTPS} on [NC]
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301,L]
Перенаправление на http для одной страницы
Вариант 1:
RewriteBase / RewriteCond %{HTTPS} on [NC]
RewriteCond %{REQUEST_URI} ^/Необходимая директория_страница$
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301,L]
Вариант 2:
RewriteBase /
RewriteCond %{HTTPS} !on
RewriteCond %{REQUEST_URI} !^/Необходимая директория_страница$
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
RewriteCond %{HTTPS} on [NC]
RewriteCond %{REQUEST_URI} ^/Необходимая директория_страница$
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301,L]
Пример: отключение перенаправления на https для страницы bitrix/admin/1c_exchange.php
для корректной работы обмена данных с 1C:
RewriteBase /
RewriteCond %{HTTPS} !on
RewriteCond %{REQUEST_URI} !^/bitrix/admin/1c_exchange\.php$
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
RewriteCond %{HTTPS} on [NC]
RewriteCond %{REQUEST_URI} ^/bitrix/admin/1c_exchange\.php$
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301,L]
Оно же для панели VestaCP:
RewriteCond %{SERVER_PORT} !^443$
RewriteCond %{REQUEST_URI} !^/bitrix/admin/1c_exchange\.php$
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
RewriteCond %{SERVER_PORT} ^443$
RewriteCond %{REQUEST_URI} ^/bitrix/admin/1c_exchange\.php$
RewriteRule .* http://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
Перенаправление на https для одной страницы
RewriteBase /
RewriteCond %{HTTPS} !on
RewriteCond %{REQUEST_URI} ^/Необходимая директория_страница$
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
Перенаправление домена без www на домен с www
В примерах осуществляется редирект с forum.example.ru на www.forum.example.ru.
Способ 1:
RewriteCond %{HTTP_HOST} ^forum\.example\.ru$ [NC]
RewriteRule ^(.*)$ http://www.forum.example.ru/$1 [R=301,L]
Способ 2, без указания домена:
RewriteCond %{HTTP_HOST} !^www\.(.*) [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
Перенаправление домена с www на домен без www
В примерах осуществляется перенаправление с www.forum.example.ru на forum.example.ru.
Способ 1:
RewriteCond %{HTTP_HOST} ^www\.forum\.example\.ru$ [NC]
RewriteRule ^(.*)$ http://forum.example.ru/$1 [R=301,L]
Способ 2.
RewriteCond %{HTTP_HOST} !^forum\.example\.ru$ [NC]
RewriteRule ^(.*)$ http://forum.example.ru/$1 [R=301,L]
Перенаправление в подкаталог
Перенаправление поддомена forum.example.ru в подкаталог forum:
RewriteBase /
RewriteCond %{HTTP_HOST} ^forum\.example\.ru$
RewriteCond %{REQUEST_URI} !/forum/ RewriteRule ^(.*)$ /forum/$1 [L]