Что такое HTTPS/SSL?
HTTPS (аббр. от англ. HyperText Transfer Protocol Secure) — расширение протокола HTTP для поддержки шифрования в целях повышения безопасности. При использовании HTTPS данные передаются поверх криптографических протоколов SSL или TLS. В отличие от HTTP с TCP-портом 80, для HTTPS по умолчанию используется TCP-порт 443. Более подробное описание этого протокола можно прочесть в Wikipedia.
В случае отсутствия SSL современные браузеры отмечают Ваши сайты как небезопасные. Использование SSL предотвращает перехват сообщений, вмешательство в каналы связи и подмену доверенных веб-сайтов.
Посетители Ваших сайтов будут уверены в конфиденциальности данных и достоверности страниц, а как дополнительное приемущество использования SSL — большее доверие пользователей к сайту и более высокие позиции в поисковых системах!
Как заказать бесплатный SSL-сертификат из панели управления?
1. Зайдите в раздел Домены и поддомены и выберите напротив домена "Управление SSL сертификатами".
2. В открывшемся окне перейдите на вкладку "Бесплатный сертификат" и нажмите кнопку "Установить".
3. После заказа SSL-сертификата вы получите письмо на контактный email о подаче заявки на выпуск SSL, а затем еще одно письмо о завершении его установки.
4. В момент установки для домена будет автоматически изменена A-запись, если домен работает на наших DNS. Если вы используете не наши DNS, необходимо самостоятельно прописать на них указанный в письме IP-адрес в качестве А-записи для домена.
Возможные проблемы при использовании SSL
Большинство CMS позволяют выбрать используемый протокол и настроить автоматическое перенаправление c HTTP на HTTPS. Если CMS эту функцию не поддерживает, можно настроить переадресацию вручную, добавив в начало файла .htaccess следующие строки:
Также стоит обратить внимание на возможные проблемы при использовании SSL:
- В том случае, если Ваш сайт проиндексирован поисковыми системами, при использовании SSL поисковые системы первое время будут считать сайты, доступные через HTTP и HTTPS, разными. Автоматическая склейка зеркал может занимать до 2 месяцев, за это время сайт может потерять свои позиции.
Правильным решением будет указать поисковой системе на эквивалентность этих сайтов с помощью директивы host в файле robots.txt, например:
Так как поисковые системы будут видеть несколько одинаковых страниц на разных доменах, рекомендуется указывать основную страницу, которая будет указываться при переходе из поисковой системы. Сделать это можно, поправив все ссылки на "rel=canonical", более подробно об этом можно прочесть в документации Google
Если на Вашем сайте используются сторонние виджеты, например, чат, телефония, статистика — их также необходимо перевести на протокол HTTPS
Удачной работы! Если возникнут вопросы — напишите нам, пожалуйста, тикет из Панели управления аккаунта, раздел "Помощь и поддержка".
.htaccess — это конфигурационный файл веб-сервера Apache , позволяющий управлять работой веб-сервера и настройками сайта с помощью различных параметров (директив) без изменения основного конфигурационного файла веб-сервера.
На хостинге RU-CENTER в настоящее время используется веб-сервер Apache версии 2.4.
Директивы файла .htaccess действуют для каталога, в котором размещён такой файл, и для всех его подкаталогов. Если вы желаете с помощью .htaccess изменить настройки для сайта в целом, его следует размещать в корневом каталоге сайта
Пожалуйста, будьте внимательны при редактировании файла .htaccess! При сохранении такого файла в кодировке UTF-8 в нём не должно присутствовать BOM-сигнатуры. Для редактирования файла .htaccess и других конфигурационных файлов мы рекомендуем использовать не «Блокнот» Windows, а специальные текстовые редакторы, например Notepad++.
Примеры использования файла .htaccess
1. Перенаправление доменов c синонима сайта на основной домен с кодом 301
Перенаправить запросы на domain.ru с любого из синонимов сайта
RewriteEngine On
RewriteCond %
RewriteRule ^(.*)$ http://domain.ru/$1 [L,R=301]
Перенаправить запросы на www.domain.ru с любого из синонимов сайта
RewriteEngine On
RewriteCond %
RewriteRule ^(.*)$ http://www.domain.ru/$1 [L,R=301]
Эти правила рекомендуется размещать в самом начале файла .htaccess.
2. Постоянное перенаправление с кодом 301
Если вы изменили адрес страницы сайта, добавьте в .htaccess следующие строки, чтобы запросы со старого адреса переадресовывались на новый
Redirect 301 /page.html http://www.domain.ru/new_page.html
- page.html — адрес старой страницы относительно корня сайта;
- www.domain.ru — имя сайта;
- new_page.html — адрес страницы, на которую нужно выполнить перенаправление.
Например, для перенаправления всех запросов к странице /period/?test=123 вашего сайта на domain.ru, вы можете написать:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %
RewriteRule ^period/$ http://domain.ru/ [L,R=301]
3. Переопределение страниц ошибок
При помощи файла .htaccess вы можете установить свои страницы ошибок:
#401 Авторизация не выполнена
ErrorDocument 401 http://domain.ru/errors/401.html
#403 Доступ запрещен
ErrorDocument 403 http://domain.ru/errors/403.html
#404 Страница не найдена
ErrorDocument 404 http://domain.ru/errors/404.html
#500 Внутренняя ошибка сервера
ErrorDocument 500 http://domain.ru/errors/500.html
Соответствующие файлы страниц ошибок (401.html, 404.html и др.) необходимо разместить в каталоге
Для того чтобы при случайном упоминании прямых ссылок на такие страницы они не проиндексировались в поисковых системах, рекомендуется:
User-agent: *
Disallow: /errors
/ваш_домен/docs/errors/.htaccess, в котором прописать
4. Постраничное перенаправление запросов на другой домен c кодом 301
Следующий код перенаправит все запросы к страницам вашего сайта на аналогичные страницы другого сайта, например, запрос http://domain.ru/main будет переадресован на http://www.newdomain.ru/main:
Redirect 301 / http://www.newdomain.ru/
RewriteEngine On
RewriteRule ^(.*)$ http://newdomain.ru/$1 [R=301,L]
5. Ограничение доступа к сайту по IP
Запретить доступ к сайту с IP-адресов 123.4.5.6 и 123.5.4.3
Order Allow,Deny
Allow from all
Deny from 123.4.5.6 123.5.4.3
Запретить доступ к сайту со всех адресов кроме 123.4.5.6 и 123.5.4.3:
Order Deny,Allow
Deny from all
Allow from 123.4.5.6 123.5.4.3
Запретить доступ к сайту для всех:
6. Переопределение главной страницы сайта (индексного файла каталога)
Сделать главной страницей файл menu.html:
7. Включение обработки PHP в .html-файлах
RemoveHandler .html .htm
AddType application/x-httpd-php .php .htm .html .phtml
8. Запрет выдачи листинга каталога
В случае отсутствия в папке главной страницы (индексного файла), при обращении без указания конкретного имени файла в запросе будет выдан список всех файлов, находящихся в каталоге. Для того чтобы запретить отображение листинга каталога, добавьте в файл .htaccess строку:
9. Включить выполнение CGI-скриптов в папке docs для файлов с расширениями .cgi, .pl. .py
В папке c CGI-скриптами необходимо разместить файл .htaccess с содержимым:
AddHandler cgi-script .cgi .pl .py
Options +ExecCGI
Скрипт должен иметь атрибут исполнения (+x, права доступа, начинающиеся с 7, например, 755).
Атрибуты (права доступа) можно изменить с помощью файлового менеджера панели управления, при помощи вашего FTP-клиента или по SSH . Также в разделе Веб-сервер → Управление модулями должен быть включен модуль CGI.
10. Блокировка переходов со сторонних ресурсов
Для запрета перехода c baddomain.ru на domain.ru добавьте в .htaccess следующее:
RewriteEngine on
RewriteCond %
RewriteRule .* — [F]
Если требуется запретить переходы с нескольких доменов, то используйте следующие директивы
RewriteEngine on
RewriteCond %
RewriteCond %
RewriteCond %
RewriteRule .* — [F]
11. Особенности использования кириллических доменов (.РФ, .МОСКВА и др.)
В файле .htaccess использование кириллицы не допускается. При составлении правил перенаправления для кириллических доменов необходимо указывать имя домена в punycode. Узнать имя домена в punycode можно с помощью сервиса Whois.
Например, для перенаправления site.ru на caйт.рф нужно воспользоваться следующим правилом:
RewriteEngine on
RewriteCond %
RewriteRule ^(.*)$ http://xn--80aswg.xn--p1ai/$1 [R=301,L]
В этом случае ваши посетители могут увидеть именно punycode-представление доменного имени в адресной строке браузера. Это не является ошибкой.
12. Перенаправление с HTTP на HTTPS и обратно
Перенаправить запросы на https://domain.ru
Перенаправить запросы на http://domain.ru
3. Диагностика ошибок
Если после редактирования или размещения .htaccess при обращении к сайту вы получили ошибку 500, то, скорее всего, в файле .htaccess допущена ошибка. Посмотреть её причины вы можете в лог-файле /var/log/ваш_домен.error_log.
Конфигурационный файл настройки .htaccess для веб-серверов на Apache. Большинство хостингов работают через этот сервер, поэтому на каждом сайте присутствует файл htaccess. Вебмастера могут частично управлять его работой внося в него свои изменения. В этой статье мы рассмотрим директивы и правила, которые можно менять в работе сервера с помощью htaccess.
Будьте, пожалуйста, внимательны при редактировании файла .htaccess! При сохранении такого файла в кодировке UTF-8 в нём не должно присутствовать BOM-сигнатуры. Для редактирования файла .htaccess и других конфигурационных файлов мы рекомендуем использовать не «Блокнот» Windows, а специальные текстовые редакторы, например Notepad++.
Файл .htaccess располагается в корне сайта.
Его действия распространяются на текущий каталог и на все вложенные каталоги. Т.е. у владельцев сайтов есть возможность воздействовать только на работу своего проекта, не мешая работе всего сервера. Если этот файл отсутствует, то его можно создать с помощью любого блокнота. Главное, чтобы название файла было «.htaccess» — без форматов .txt, .doc и т.д.
Через файл .htaccess чаще всего настраивают 301 редиректы на уровне сервера, что сильно ускоряет процесс перехода на новую страницу, т.к. не надо загружать промежуточную страницу. Также здесь прописывается какой файл обрабатывает 404 ошибки.
Чуть ниже мы рассмотрим все распространенные варианты редиректов через .htaccess, а для начала ознакомимся с опциями и правилами.
Чтобы иметь возможность работать с редиректами нужно включить модуль ReWriteEngine . Для этого необходимо прописать две строчки кода (желательно в самом верху файла .htaccess):
Options +FollowSymLinks
RewriteEngine On
Разместите эти строки в самом верху файла .htaccess, чтобы иметь возможность работать с директивами модуля mod_write.
Также на хостинге должны быть включены модули mod_alias (для поддержки Redirect, RedirectPermanent и RedirectMatch).
Правила настройки Redirect, RewriteRule и RewriteCond
Директива Redirect в htaccess
Redirect [status] /откуда http://куда_полный_адрес
Redirect устанавливает прямой редирект с одной страницы на другую.
В status пишут код редиректа. Является необязательным параметром. Чаще всего пишут 301, что сигнализирует о постоянном смене адреса страницы.
Важно, чтобы страница «откуда» была прописана в формате без указания полного адреса сайта, но с указанием полного относительного адреса URL начиная со слэша «/» (т.е. с корня сайта). Страницу куда идет редирект нужно писать полностью, т.е. абсолютный адрес страницы URL (т.е. с названием домена и протокола http или https).
Redirect 301 /oldpage.php https://htaccess.ru/newpage.php
Можно также писать по другому
RedirectPermanent 301 /oldpage.php https://htaccess.ru/newpage.php или
Redirect permanent 301 /oldpage.php https://htaccess.ru/newpage.php
Директива RewriteRule
Директива RewriteRule устанавливает правила перехода. Синтаксис следующий:
RewriteRule Шаблон Подстановка [коды]
- При внешнем редиректе меняется урл адреса в строке браузера — «[R=301,L]»
- При внутреннем — не меняет урл адреса в строке браузера — «[R=301]» или «[L]»
Директива RewriteCond
Директива RewriteCond определяет условия при котором выполняется правила в RewriteRule.
RewriteCond Сравниваемая_Строка Условие
Например, этими условиями могут быть браузер пользователя, IP-адрес, заголовок и т.д.
Директива RedirectMatch
Директива RedirectMatch в htaccess аналогична Redirect с той лишь разницей, что позволяет записывать регулярные выражения.
RedirectMatch [status] Откуда Куда
Примеры настройки 301 редиректов в htaccess
Ниже даны наиболее используемые правила настройки файла .htaccess для 301-редиректа. Лучше размещать все правила после двух строк:
Options +FollowSymLinks
RewriteEngine On
Комментарий в файле htaccess обозначается символом решётка «#» в начале строки
# Текстовый комментарий, данная строчка не будет обрабатываться.
301-редирект с домена без WWW на домен с WWW префиксом
RewriteCond %
RewriteRule ^(.*)$ http://www.site.ru/$1 [R=301,L]
С домена с WWW префиксом на без
RewriteCond %
RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]
Для HTTPS-версии:
RewriteCond %
RewriteCond %
RewriteRule ^(.*)$ https://site.ru/$1 [R=301,L]
Стандартный 301-редирект с одной статической страницы на другую
Redirect 301 /was.php http://www.site.ru/new.php
При этом в файле htaccess, новый адрес указывать необходимо полностью с http и доменным именем.
В ряде случаев полезен редирект через RewriteRule
RewriteRule ^dir /dir-new/$1 [R=301,L]
Настройка 301-редирект для страницы с GET параметрами
Скажем, адрес страницы имеет вид: http://www.htaccess.ru/dir/index.php?IBLOCK_ >
RewriteCond %
RewriteRule ^dir/index.php$ /new/sef/? [R=301,L]
Если один (или несколько) из GET параметров не задан(ы) или может иметь произвольное значение (в нашем примере это SECTION_ID), можно использовать следующий код:
RewriteCond %
RewriteRule ^dir/index.php$ /new/sef/? [R=301,L]
Убираем все GET-параметры после знака вопроса (?)
RewriteRule (.*) $1? [R=301,L]
Располагать после: RewriteBase /
301-редирект со страницы без заданного параметра в корень
Если адрес имеет следующий вид: http://www.htaccess.ru/?abc то для редиректа подойдет последовательность строчек:
RewriteCond %
RewriteRule ^$ /? [R=301,L]
301-редирект для конкретного файла, а не целой папки
Если в файле htaccess требуется настроить редирект только для адреса http://www.htaccess.ru/dir/, но при этом чтобы страница http://www.htaccess.ru/dir/index.php?IBLOCK_ >
RewriteRule ^dir/$ http://www.htaccess.ru/new-dir/ [R=301,L]
Как быть с доменами в зоне РФ?
Для доменов в зоне РФ действуют все те же правила, но только все кириллические символы необходимо заменить на альтернативный код (он на латинице). В частности, сама зона .рф преобразуется в .xn--p1ai.
301-редирект с домена на домен
RewriteCond %
RewriteRule ^(.*)$ http://www.site.ru/$1 [R=301,L]
И для домена в зоне РФ:
RewriteCond %
RewriteRule ^(.*)$ http://www.site.ru/$1 [R=301,L]
Настройка редиректа на папки со слешем в конце /
Настройка редиректа на папки без слеша (убираем слеш в конце)
301-редирект с домена на папку на другом домене
RewriteCond %
RewriteRule ^(.*)$ http://www.site.ru/si-te/ [R=301,L]
Редирект со всех файлов домена, кроме папки администратора bitrix
RewriteRule ^bitrix/ /bitrix/admin/ [L,R=301]
RewriteRule ^(.*)$ http://www.newsite.ru/new/ [L,R=301]
Редирект всех файлов в папке на заданный файл
RewriteRule ^dir(.*)$ /new-file.php [L,R=301]
Редирект файлов из заданной папки кроме, определенного файла
RewriteRule ^dir/no-file.html /no-file-new.html [L,R=301]
RewriteRule ^dir(.*)$ /all.php [L,R=301]
Смена страниц с html расширения на php расширение
RedirectMatch 301 (.*).html$ http://www.new-site.ru$1.php
Перенос картинок / изображений из папки /img/ на поддомен
RewriteRule ^img/(.+).jpg$ http://img.domain.ru/$1.jpg [R=301,L]
Задание типа индексной страницы (php, html, htm и другие)
Указывается порядок загрузки типов индексного файла, лежащих в корне каталога.
DirectoryIndex index.html index.php index.htm index.shtml
Редирект с индексной страницы php на саму папку (корень)
RewriteCond %
RewriteRule ^index.php$ http://www.site.ru/ [R=301,L]
Для всех индексных страниц на сайте:
RewriteRule ^(.*)index.php$ http://www.site.ru/$1 [R=301,L]
Редирект с поддомена на основной домен второго уровня
RewriteCond %
RewriteRule ^(.*)$ http://site.ru%
Редирект для заданного файла в различных директориях (папках)
RewriteRule [^abc]/unique-file.html /unique-file.html [R=301,L]
Код позволяет поставить 301-редирект со всех папок вида http://htaccess.ru/***/uniqe-file.html на один файл в корне /unique-file.html. Бывает полезен при переделке сайта и изменении ссылок.
Если требуется создать ЧПУ-копию какой-либо динамической страницы, то это можно также реализовать с помощью .htaccess.
RewriteRule ^testovyi/test/?$ /studio/news/detail.php? >
Код позволяет создать копию страницы с относительным адресом /studio/news/detail.php? >
301-редирект с HTTPS-версии на HTTP
Позволяет устранить наличие дублей URL с HTTPS в индексе поисковых систем.
Перенос сайта на версию с HTTPS (для всех страниц)
RewriteCond %
RewriteCond %
RewriteRule ^(.*)$ https://htaccess.ru/$1 [R=301,L]
Настройка 403 кода ответа сервера для реф-спама (301-редирект для спама по REFERER) для списка ресурсов
RewriteCond %
RewriteCond %
RewriteRule .* — [F]
Настройка позволяет отклонить спамный реферальный трафик с ряда ресурсов по заголовку HTTP_REFERER.
Указание пути к файлу 404 ошибки с помощью .htaccess
Внимание, важно чтобы код ответа сервера для 404 ошибки был именно 404. Путь к файлу указывается с помощью следующей строчки:
ErrorDocument 404 /404-for-me.php
! Все правила выполняются в прямом порядке их следования в файле .htaccess и правило, написанное позже, и будет выполняться позже.
! Для сайтов, на которых используется не сервер Apache, аналогичные 301-редиректы легко настраиваются с помощью PHP.
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.htaccess.ru/dir/");
exit();
?>
! Оптимально настраивать все редиректы сразу на конечную страницу (без промежуточных перенаправлений, в один шаг) это улучшает их восприятие со стороны поисковых систем и пользователей.
Если требуется настроить редирект только для некоторых USER_AGENT’ов, а не для всех пользователей
RewriteCond %
RewriteRule (.*) http://mobile.htaccess.ru/ [L,R=301]
Если требуется настроить редирект для всех поисковых роботов (представлен список их USER_AGENT’ов)
RewriteCond %
RewriteRule (.*) http://no-search.site.ru/ [L,R=301]
Несколько простых редиректов
Редирект с www.htaccess.ru/component/content/?view=featured на www.htaccess.ru/
RewriteCond %
RewriteRule ^component/content/$ /? [R=301,L]
Редирект с www.htaccess.ru/index.php? >
RewriteCond %
RewriteRule ^index.php$ /? [R=301,L]
Синтаксис для регулярных выражений файла htaccess
. — Точка заменяет произвольный символ.
[abc] — обозначает перечень символов, совпадающих с буквами a, b, или с.
[^abc] — перечень символов, которые не входят в указанных диапазон. Совпадёт с любым символом, кроме a, b, или с.
* — означает, что предшествующий символ может повторяться (0 или более раз).
[abc]* — команда найдёт идущие подряд символы из заданного набора.
[^abc]* — с точностью до наоборот.
.* — заменяет абсолютно любой набор символов. «.*» — найдёт все подстроки между кавычками.
^ — начало строки (в том случае, если используется в начале выражения).
$ — обозначает конец строки.
w — буква, цифра или подчёркивание _.
d — заменяет любую цифру.
D — заменяет любой символ, но не цифру.
[0-9] — заменяет любую цифру.
[a-z] — любая буква от a до z (весь латинский набор символов) в нижнем регистре.
[A-Z] — любая буква от A до Z в ВЕРХНЕМ регистре.
[a-zA-Z] — любая буква от a до Z в любом регистре.
[a-Z] — то же самое.




