ХАК Использование HTTPS (SSL)

Sam Jack

Капитан-Узурпатор
Команда форума
Созидатель
5 Май 2015
13.918
4.894
113
Россия
null-prog.ru
Коротко: Использование HTTPS (SSL) соединения с помощью .htaccess и mod_rewrite для XenForo
Совместимость:
  • XenForo 1.0
  • XenForo 1.1
  • XenForo 1.2
  • XenForo 1.3
  • XenForo 1.4
Данная инструкция включает в себя именно настройку для XenForo и это подразумевает то, что Вы уже приобрели SSL сертификат и подключили его на стороне своего сервера.

Для начала переходим сюда: Панель управления - Основная информация о форуме (/admin.php?options/list/basicBoard) - И в поле "URL форума" прописываем адрес, начиная с https://

Далее открываем файл .htaccess и в самый его низ добавляем:
Код:
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301]
Что добавит поддержку https протокола на все страницы нашего форума.

Если же Вам нужна поддержка https только для определённых страниц, то Вы можете добавить такой код:
Код:
RewriteCond %{HTTPS} off
RewriteCond %{QUERY_STRING} (^register$|^login$)
RewriteRule ^/?(.*) https://%{SERVER_NAME}%{REQUEST_URI} [R=301]
Что добавить поддержку https только для страниц авторизации и регистрации.

Если же поддержка https Вам необходима только для тем и форумов, то добавляем такой код:
Код:
RewriteCond %{HTTPS} off
RewriteCond %{QUERY_STRING} !(^forums$|^threads$)
RewriteRule ^/?(.*) https://%{SERVER_NAME}%{REQUEST_URI} [R=301]
Ну и в окончании нашей процедуры, файл .htaccess должен выглядеть так:
Код:
ErrorDocument 401 default
ErrorDocument 403 default
ErrorDocument 404 default
ErrorDocument 500 default
<IfModule mod_rewrite.c>
RewriteEngine On
# If you are having problems with the rewrite rules, remove the "#" from the
# line that begins "RewriteBase" below. You will also have to change the path
# of the rewrite to reflect the path to your XenForo installation.
#RewriteBase /xenforo
# This line may be needed to enable WebDAV editing with PHP as a CGI.
#RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^(data/|js/|styles/|install/|favicon\.ico|crossdomain\.xml|robots\.txt) - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301]
</IfModule>
Сохраняем всё это дело и радуемся работе XenForo по протоколу HTTPS.