Иконка ресурса

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

xenforomen, в настройках форума поставить основной адрес форума с https!
В том то и дело, что все стоит. Я все сделал согласно этой теме...

Я вот даже к такому виду привел ссылки на стили в шаблоне PAGE_CONTAINER:
<link rel="stylesheet" href="{xen:link 'css.php?css=xenforo,form,public&amp;style={xen:urlencode $_styleId}&amp;dir={$visitorLanguage.text_direction}&amp;d={$visitorStyle.last_modified_date}'}" />
<!--XenForo_Require:CSS-->

<link rel="stylesheet" href="{xen:link 'css.php?css=flexile,<xen:if is="@flexile_cssTemplate">@flexile_cssTemplate</xen:if>&amp;style={xen:urlencode $_styleId}&amp;dir={$visitorLanguage.text_direction}&amp;d={$visitorStyle.last_modified_date}'}" />
И все равно вот так отображается:
2015-03-22_165255.png
ничего не понимаю а вот если привести к абсолютному пути, все работает
 
xenforomen, у вас некорректно настроен сервер. Или добавляйте в файл config.php ту строку, про которую говорили выше, либо настраивайте север, чтобы с http-версии был 301 редирект на https.
 
Короче задолбался я с этой хренью, пришлось прописать $_SERVER['HTTPS'] = 'on'; чтоб все заработало
 
Могут ли при использовании https быть траблы с cloudflare?
При попытке зайти на подгружаються только картинки и текст, оформления нету вообще.

- Пробовал использовать метод из этой темы - итог описан выше.
- Пробовал использовать $_SERVER['HTTPS'] = 'on'; (вроде все работает, но почитав коментарии понял что этого делать не следует)
 
mms, нужно сервер настроить, чтобы с http-версии был 301 редирект на https, пишу не знаю какой раз. Ну или в клауде можно аналогичный редирект сделать.
 
mms, нужно сервер настроить, чтобы с http-версии был 301 редирект на https, пишу не знаю какой раз. Ну или в клауде можно аналогичный редирект сделать.
В сапорте сказали что все работает как часы.
 
mms, то есть при входе на http://site.com открывается https://site.com? Если нет, то часы китайские, за 5 рублей.
 
mms, то есть при входе на http://site.com открывается https://site.com? Если нет, то часы китайские, за 5 рублей.
При входе на https://site.com сайт открывается но без оформления, только при добавлении строки $_SERVER['HTTPS'] = 'on'; работает нормально.
 
только при добавлении строки $_SERVER['HTTPS'] = 'on'; работает нормально.
Добавь
Код:
if ($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')
$_SERVER['HTTPS']='on';

PS: блин, туплю, исправил
 
Последнее редактирование:
Smalesh, не поможет, это особенность XenForo - он почему-то пытается в случае с клаудом грузить контент через http, следовательно браузер блокирует все смешанное содержимое.
 
не поможет, это особенность XenForo - он почему-то пытается в случае с клаудом грузить контент через http, следовательно браузер блокирует все смешанное содержимое.
Поможет, то я протупил, кинул не тот код, и побежал дальше.

Вынеси где-то в FAQ - с клаудом нужно добавлять такие строки
Код:
if (isset($_SERVER['HTTP_CF_CONNECTING_IP']))
$_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_CF_CONNECTING_IP'];


if ($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')
$_SERVER['HTTPS']='on';
И все будет работать - и IP и HTTPS.

Первое условие подставит реальный ip, второе - скорректирует переменную $_SERVER['HTTPS']

После чего редирект на https можно (лучше) делать средствами самого клоуда. Но не рекомендовал на бесплатных аккаунтах принудительно заворачивать на https - попадаются клиенты без поддержки SNI, тут нужно смотреть по своей аудитории.
 
Последнее редактирование:
  • Мне нравится
Реакции: mms
Smalesh, я хз в какой раз пишу, что работать с сервером путем указания $_SERVER['HTTPS']='on'; - некорректно. Вы можете конкретно настроить сервер, а не использовать эти костыли?
 
Вы можете конкретно настроить сервер, а не использовать эти костыли?
Никаких проблем. Ждем решение поставленной задачи от Exile, как нам нужно настраивать сервер.
У человека нет проблем с редиректом. У него как раз проблема отловить что к нему приходит https.
И редиректы в таком случае правильнее будут
Код:
RewriteCond %{HTTP:CF-Visitor} '"scheme":"http"'
RewriteRule ^(.*)$ https://www.domain.com/$1 [L]
Только редиректы его не спасают, потому что движок выдает стили и скрипты в http - они в https не грузятся, отсюда едут стили и не работают много чего другого.
Вот как-то так.

ЗЫ: забыл, хрустальный шар мне подсказал что у человека flexible ssl, это когда на хост приходит http.
 
Последнее редактирование:
  • Мне нравится
Реакции: mms
Хочу вставить свой костыль...
Сервер настроен давно:
server {
listen 000.00.00.00;
server_name site.biz
rewrite ^/(.*)$ permanent;
}
Тем не менее, сайт не заработал без добавления глобальной переменной. И в клоуде тоже прописано:
2015-03-25_034203.png
 
Smalesh, если почитать официальный форум, то можно придти к неутешительному выводу, что XenForo достаточно плохо работает в ситуации с двойным доступом, когда доступ через https является приоритетным. В одной из тем самими разработчиками было порекомендовано и впоследствии большим числом очень крупных форумов реализовано крайне простое решение - в nginx настраивается 301 редирект с http на https-версию. Тут, в зависимости от версии клауда (платная/бесплатная) действительно у бесплатных пользователей будет потеря тех кто без SNI (Windows XP давно пора зарыть так-то). Единственное решение, которое не требует никаких костылей с принудительным включением в php SSL - настроить редирект с обычной версии на защищенную. Все будет работать идеально и моментально (подмена IP другой разговор, но опять же желательно через конфиги nginx). Я правда не понимаю что за упорное желание заставить php работать якобы с SSL. У вас извините или SSL или нет, а "жри сука как я в конфиге через суперглобалы указал" - самый настоящий костыль.

xenforomen, да, совершенно верное решение.
ЗЫ: забыл, хрустальный шар мне подсказал что у человека flexible ssl, это когда на хост приходит http.
Вот как раз с ним проблем нет. Проблемы с full ssl.
 
без добавления глобальной переменной
А если глобальную переменную обрамим нашим условием (вообще то там хорошо бы и порт проверять), это будет идеологически корректно.

И в клоуде тоже прописано:
Если это прописано - редирект на сервере не нужен.

Проблемы с full ssl
С full ssl проблем не будет по умолчанию - https приходит на клоуд, https уходит на сервер, сервер правильно поднимает флаг и выставляет переменную https (правда каждый делает это немножко по-своему, но нам это до фонаря - оно или тру или фолс). Я ничего не перепутал?
 
Если это прописано - редирект на сервере не нужен.
проблема не в этом, мы знает это
(вообще то там хорошо бы и порт проверять), это будет идеологически корректно.
Порт прописан ранее 443 в конфиге сервера
 
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу