Использование HTTPS (SSL) соединения с помощью .htaccess и mod_rewrite для XenForo

kasim

Регистрация
31.01.16
Сообщения
28
Симпатии
11
#1
Данная инструкция включает в себя именно настройку для XenForo и это подразумевает то, что Вы уже приобрели SSL сертификат и подключили его на стороне своего сервера.

Для начала переходим сюда: Панель управления - Основная информация о форуме (/admin.php?options/list/basicBoard) - И в поле "URL форума" прописываем адрес, начиная с https:// , например: WebNull.info - Всё для начинающего веб-разработчика!

Далее открываем файл .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>