Форум русской поддержки Joomla!® CMS
07.12.2016, 14:40:34 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1] 2  Все   Вниз
  Добавить закладку  |  Печать  
Автор

Проблема с base href для https (в параметре live_site просто '')

 (Прочитано 1654 раз)
0 Пользователей и 1 Гость смотрят эту тему.
vbulletinX
Осваиваюсь на форуме
***

Репутация: +7/-14
Offline Offline

Сообщений: 72


« : 20.09.2015, 16:17:21 »

недавно установили мне для сайта ssl сертификат (установила техподдержка рег.ру, где и находится сайт, т.к. по их инструкции на моем vps нельзя было установить, они сделали это в обход панели ISP Manager), и теперь возникает проблема, если в файле configuration.php не указан параметр $live_site (то есть указан вот так: $live_site = '') - в этом случае, у меня в коде сайта, если я захожу по https://site.ru, то всегда вижу в коде сайта <base href="http://site.ru/" /> , соответственно возникают проблемы с отображением сайта по протоколу https.

если же указать параметр $live_site = 'https://site.ru', то всегда по https будет указан параметр <base href="https://site.ru/" />, даже если сайт загружаю по http протоколу (ну это естественно).

в чем проблема:
если я в настройках админки Joomla 3.4.4 выбираю пункт SSL - только для админки (т.е. чтобы админка всегда грузилась по https), то я тогда не могу зайти в админку, то есть у меня не загружается страница с админкой. (если при этом указано, что $live_site = '')

хостер рег.ру, на котором VPS, вот что ответил:

Цитировать
Здравствуйте!
Данная проблема связана с циклической переадресацией CMS Вашего сайта с протокола http на https

 cURL -I https://site.ru/administrator/
HTTP/1.1 301 Moved Permanently
Server: nginx/0.8.54
Date: Tue, 15 Sep 2015 13:50:41 GMT
Content-Type: text/html; charset=utf-8
Connection: keep-alive
X-Powered-By: PHP/5.4.34
Set-Cookie: (тут были куки); path=/; secure; HttpOnly
Location: https://site.ru/administrator/


 cURL -I http://site.ru/administrator/
HTTP/1.1 301 Moved Permanently
Server: nginx/0.8.54
Date: Tue, 15 Sep 2015 13:50:53 GMT
Content-Type: text/html; charset=utf-8
Connection: keep-alive
X-Powered-By: PHP/5.4.34
Set-Cookie: (тут были куки); path=/; secure; HttpOnly
Location: https://site.ru/administrator/

В первую очередь, для решения подобного вопроса мы рекомендуем Вам обратиться к специалистам, которые занимались разработкой Вашего сайта. Кроме того, интересующую Вас информацию Вы можете найти на тематических ресурсах, посвящённых разработке используемой Вами CMS-системы.

при этом, у меня есть еще другой vps у рег.ру, где такой проблемы нет (и сертификах SSL я сам смог установить по инструкции на их сайте в панели ISP) и при параметре $live_site = '' у меня все нормально, а здесь такой параметр не подходит и надо выбирать что-то одно - или http или https....
Записан
vbulletinX
Осваиваюсь на форуме
***

Репутация: +7/-14
Offline Offline

Сообщений: 72


« Ответ #1 : 20.09.2015, 16:43:11 »

в кратце:
при параметре $live_site = '' (т.е. без указания домена) в configuration.php, у сайта параметр "base href" всегда принудительно определяется по протоколу http, т.е. не работает динамическая смена параметра "base href" и надо выбирать - либо сайт по http, либо только по https делать рабочим, но такого, чтобы сайт нормально грузился по обоим протоколам - не возможно сделать.
Записан
b2z
Support Team
*****

Репутация: +710/-0
Offline Offline

Пол: Мужской
Сообщений: 7536


Разраблю понемногу


« Ответ #2 : 20.09.2015, 19:38:57 »

Попробуйте применить этот фикс
https://github.com/joomla/joomla-cms/pull/7902/files
Записан
vbulletinX
Осваиваюсь на форуме
***

Репутация: +7/-14
Offline Offline

Сообщений: 72


« Ответ #3 : 20.09.2015, 22:54:39 »

Попробуйте применить этот фикс
https://github.com/joomla/joomla-cms/pull/7902/files

в файле libraries/cms/application/site.php заменил "current" на "base" в нужной строке, но не помогло, все описанные выше проблемы так и остались.
Записан
vbulletinX
Осваиваюсь на форуме
***

Репутация: +7/-14
Offline Offline

Сообщений: 72


« Ответ #4 : 20.09.2015, 23:02:40 »



когда у меня $live_site = '', то я могу зайти в админку по HTTPS протоколу, но если  я опцию "Включить SSL - только для панели управления" делаю, то в панель управления больше попасть не могу, она перестает загружаться (пока на 0 не переведу параметр для SSL в файле конфигурации сайта).

вот такая вот проблема. не работает динамический base href на фронте и смена протокола в админке.
Записан
flyingspook
Профи
********

Репутация: +226/-9
Offline Offline

Сообщений: 3532


« Ответ #5 : 20.09.2015, 23:37:08 »

В base href подставляется приоритетное соединение и оно если включен ssl и есть https все правильно, разработчики и не думали его делить на фронт и бэкенд. Ни кому в голову не придет что кто то будет SSL подключать частично.
По теме могу сказать что иногда есть проблема не только с движком но и с шаблонами при подключении https.
Записан
vbulletinX
Осваиваюсь на форуме
***

Репутация: +7/-14
Offline Offline

Сообщений: 72


« Ответ #6 : 20.09.2015, 23:46:18 »

В base href подставляется приоритетное соединение и оно если включен ssl и есть https все правильно, разработчики и не думали его делить на фронт и бэкенд. Ни кому в голову не придет что кто то будет SSL подключать частично.
По теме могу сказать что иногда есть проблема не только с движком но и с шаблонами при подключении https.
что за БРЕД ты пишешь?

По теме могу сказать что иногда есть проблема не только с движком но и с шаблонами при подключении https.

У меня параметр base href Неправильно определяется (а в самом шаблоне все ссылки нормальные, без полных путей).

разработчики и не думали его делить на фронт и бэкенд. Ни кому в голову не придет что кто то будет SSL подключать частично.

Что касается "делить" - как раз-таки, разработчики об этом в первую очередь подумали, раз сделали такую опцию в настройках Joomla. Я в админку только по https хочу заходить, а вот сайт пусть будет с 2 протоколов доступен (тот же ВКонтакте и многие другие сайты доступны с 2 протоколов сейчас и без редиректов работают).

В base href подставляется приоритетное соединение и оно если включен ssl и есть https все правильно

если ты в Joomla не разбираешься, то зачем в тему лезешь со своими ответами? я уже выше написал, что у меня в файле конфигурации не указан домен, то есть там написано просто $live_site = '', без указания домена и протокола, то есть, по какому протоколу я захочу увидеть сайт - по тому протоколу и должен подставляться параметр "base href", но в моем случае что-то пошло не так, поэтому зашел на этот форум, возможно у кого-то такая же проблема была.

так или иначе, у меня на другом vps от рег.ру, все ОК работает при той же версии Joomla 3.4.4, а на этом vps что-то не так....
Записан
Филипп Сорокин
Живу я здесь
******

Репутация: +121/-3
Offline Offline

Пол: Мужской
Сообщений: 1459


« Ответ #7 : 22.11.2015, 21:46:04 »

Возникла такая же проблема: на одном хостинге работает хорошо, на другом хостинге base href для протокола https определяется как http. Из-за этого "летят" все стили, изображения и скрипты. Live Site переменную так же пробовал обнулять.

Попробуйте применить этот фикс
https://github.com/joomla/joomla-cms/pull/7902/files

Этот фикс нужно повторять после каждого обновления?
« Последнее редактирование: 22.11.2015, 21:53:50 от Филипп Сорокин » Записан
b2z
Support Team
*****

Репутация: +710/-0
Offline Offline

Пол: Мужской
Сообщений: 7536


Разраблю понемногу


« Ответ #8 : 23.11.2015, 00:33:31 »

Скорее всего, что нет. Вот еще вариант решения:
https://github.com/joomla/joomla-cms/pull/6270/files
Записан
fbr
Живу я здесь
******

Репутация: +136/-6
Offline Offline

Сообщений: 1250


« Ответ #9 : 23.12.2015, 20:43:41 »

Попробуйте применить этот фикс
https://github.com/joomla/joomla-cms/pull/7902/files
b2z, спасибо.
Работает))

Но тем не менее остается вопрос:
В версии 3.4.5 все работало без хака, на https
При обновлении до 3.4.6(7) - стили и скрипты слетели, стали подключаться по http
Какие изменения могли повлиять?

Код
(index):1 Mixed Content: The page at 'https://site-name.ru/' was loaded over HTTPS, 
but requested an insecure script 'http://site-name.ru/media/jui/js/jquery.min.js'.
This request has been blocked; the content must be served over HTTPS.
 
Записан
b2z
Support Team
*****

Репутация: +710/-0
Offline Offline

Пол: Мужской
Сообщений: 7536


Разраблю понемногу


« Ответ #10 : 23.12.2015, 21:09:47 »

да никакие, правили только один файл сесии
Записан
fbr
Живу я здесь
******

Репутация: +136/-6
Offline Offline

Сообщений: 1250


« Ответ #11 : 23.12.2015, 21:18:02 »

Странно все это .. Мистика
Записан
denverkurt
Осваиваюсь на форуме
***

Репутация: +24/-0
Offline Offline

Пол: Мужской
Сообщений: 109



« Ответ #12 : 06.02.2016, 11:35:46 »

Циклическая переадресация может возникать если на сервере работает связка Nginx + Apache

в таком случае нужно в файле /libraries/joomla/uri/uri.php заменить строку:
Код:
if (isset($_SERVER['HTTPS']) && !empty($_SERVER['HTTPS']) && (strtolower($_SERVER['HTTPS'])!= 'off'))
на:
Код:
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')

патч нужно применять после каждого обновления


* Без имени-1.jpg (217.9 Кб, 971x650 - просмотрено 99 раз.)
« Последнее редактирование: 06.02.2016, 13:08:51 от denverkurt » Записан
SolopoV
Завсегдатай
*****

Репутация: +12/-0
Offline Offline

Пол: Мужской
Сообщений: 462


зеленею...


« Ответ #13 : 06.02.2016, 22:39:53 »

Мне вот этот костыль помог:

if (isset($_SERVER['HTTPS']) && !empty($_SERVER['HTTPS']) && (strtolower($_SERVER['HTTPS'])!= 'off'))
{
$https = 's://';
}
else
{
$https = 's://';
}
Записан
denverkurt
Осваиваюсь на форуме
***

Репутация: +24/-0
Offline Offline

Пол: Мужской
Сообщений: 109



« Ответ #14 : 06.02.2016, 22:47:44 »

Мне вот этот костыль помог:

if (isset($_SERVER['HTTPS']) && !empty($_SERVER['HTTPS']) && (strtolower($_SERVER['HTTPS'])!= 'off'))
{
$https = 's://';
}
else
{
$https = 's://';
}
но в этом случае принудительно все ссылки преобразуются в https
в некоторых случаях это может быть нежелательно
Записан
SolopoV
Завсегдатай
*****

Репутация: +12/-0
Offline Offline

Пол: Мужской
Сообщений: 462


зеленею...


« Ответ #15 : 11.02.2016, 23:27:28 »

но в этом случае принудительно все ссылки преобразуются в https
в некоторых случаях это может быть нежелательно
"Некоторые" - это какие?
Записан
denverkurt
Осваиваюсь на форуме
***

Репутация: +24/-0
Offline Offline

Пол: Мужской
Сообщений: 109



« Ответ #16 : 12.02.2016, 08:51:56 »

Когда доступ нужен именно по http
Записан
SolopoV
Завсегдатай
*****

Репутация: +12/-0
Offline Offline

Пол: Мужской
Сообщений: 462


зеленею...


« Ответ #17 : 12.02.2016, 09:08:47 »

Когда доступ нужен именно по http
Куда же нужен доступ по http, если сайт переведен на s, ... понять  не могу.
Записан
denverkurt
Осваиваюсь на форуме
***

Репутация: +24/-0
Offline Offline

Пол: Мужской
Сообщений: 109



« Ответ #18 : 12.02.2016, 12:12:28 »

Куда же нужен доступ по http, если сайт переведен на s, ... понять  не могу.
Настоящий программист должен предусмотреть все варианты. Даже если СЕЙЧАС это кажется вам излишним и абсурдным.
А вы своими костылями подаете плохой пример программирования другим ***кодерам
Записан
SolopoV
Завсегдатай
*****

Репутация: +12/-0
Offline Offline

Пол: Мужской
Сообщений: 462


зеленею...


« Ответ #19 : 12.02.2016, 12:24:17 »

Настоящий программист должен предусмотреть все варианты. Даже если СЕЙЧАС это кажется вам излишним и абсурдным.
А вы своими костылями подаете плохой пример программирования другим ***кодерам
Смотреть нужно в корень, в причину, а не на действия. Мне ничего не кажется и  без этого костыля не работает. А Вы, сударь, можете тут продолжать свой танец с бубном.
Записан
denverkurt
Осваиваюсь на форуме
***

Репутация: +24/-0
Offline Offline

Пол: Мужской
Сообщений: 109



« Ответ #20 : 12.02.2016, 13:30:02 »

Это у вас танцы с бубнами и действия методом тыка.
Я же предложил обоснованный вариант решения проблемы.
Но вам ваш вариант нравится больше и вы задаете бестолковые вопросы. Сударь
Записан
Taatshi
Support Team
*****

Репутация: +430/-3
Offline Offline

Пол: Женский
Сообщений: 4718

Мама, я снова верстал во сне...


« Ответ #21 : 12.02.2016, 13:33:23 »

если сайт переведен на https - загрузка по http не должна производится. Необходимо писать редирект с http на https. Для поисковика это разные адреса - вы получите полный дубль Вашего сайта. Сеошники Вас загрызут.
Записан
denverkurt
Осваиваюсь на форуме
***

Репутация: +24/-0
Offline Offline

Пол: Мужской
Сообщений: 109



« Ответ #22 : 12.02.2016, 15:10:46 »

ну так и пишите себе в .htaccess редиректы наздоровье
я лишь запостил как правильно должно быть реализовано в PHP коде. Вижу многих это задело за живое? в чем проблема то? что так закопошились?
нравится вам дописывать httpS ну и дописывайте дальше наздоровье, гении программирования
Записан
vbulletinX
Осваиваюсь на форуме
***

Репутация: +7/-14
Offline Offline

Сообщений: 72


« Ответ #23 : 16.02.2016, 15:01:30 »

если сайт переведен на https - загрузка по http не должна производится. Необходимо писать редирект с http на https. Для поисковика это разные адреса - вы получите полный дубль Вашего сайта. Сеошники Вас загрызут.

есть тег rel="canonnical" и никакого дубля никто не получит, а получит 2 работающие версии сайта по разным протоколам, но с одной главной ссылкой в поисковике. СЕОшники такое одобрят руками и ногами.
Записан
SolopoV
Завсегдатай
*****

Репутация: +12/-0
Offline Offline

Пол: Мужской
Сообщений: 462


зеленею...


« Ответ #24 : 23.04.2016, 08:12:02 »

Пришло время ответить на вопрос как безболезненно переехать на защищенный протокол.

1. Устанавливаем сертификат на сервер.
2. Делаем доступ по двум протоколам http и https
В Joomla, плагинах, модулях и компонентах попадает код, который подтягивается только через http, придется попотеть и исправить все эти вещи.

К примеру:

<script src="http://www.xxxxxx.ru/plugins/system/bdthemes_shortcodes/js/shortcode-ultimate.js" type="text/javascript"></script>

переписываем под:

<script src="//www.xxxxxx.ru/plugins/system/bdthemes_shortcodes/js/shortcode-ultimate.js" type="text/javascript"></script>

Аналогично с картинками, ссылками и т.п.

Важно, что бы сайт грузился одинаково корректно по данным протоколам.

3. Идем в Яндекс Вебмастер и в Google консоль и добавляем новые зеркала с https, делаем их главными + в robots.txt указываем главное зеркало с https

4. Ждем "прихода"

Приход приходит долго Azn, особенно от Яндекс.

Гугл выдаст результаты уже через 2 недели без потери PR
Яндекс сразу обнулит ТИЦ и выдаст результаты через месяц, спустя ещё месяц восстановит ТИЦ.

Проверено на 2 живых интернет магазинах. При переезде использовалась переписка с Платонами.

Никаких редиректов не использовалось.
« Последнее редактирование: 23.04.2016, 18:30:32 от SolopoV » Записан
denverkurt
Осваиваюсь на форуме
***

Репутация: +24/-0
Offline Offline

Пол: Мужской
Сообщений: 109



« Ответ #25 : 23.04.2016, 09:00:56 »

Цитировать
переписываем под:

<script src="//www.xxxxxx.ru/plugins/system/bdthemes_shortcodes/js/shortcode-ultimate.js" type="text/javascript"></script>
зачем статично прописывать адрес сайта и потом в случае чего лазить по всем папкам и исправлять?
достаточно прописать так:
Код:
<script src="plugins/system/bdthemes_shortcodes/js/shortcode-ultimate.js" type="text/javascript"></script>
а ваш формат имеет смысл для внешних ресурсов расположенных на других сайтах
Записан
SolopoV
Завсегдатай
*****

Репутация: +12/-0
Offline Offline

Пол: Мужской
Сообщений: 462


зеленею...


« Ответ #26 : 23.04.2016, 18:28:56 »

зачем статично прописывать адрес сайта и потом в случае чего лазить по всем папкам и исправлять?
достаточно прописать так:
Код:
<script src="plugins/system/bdthemes_shortcodes/js/shortcode-ultimate.js" type="text/javascript"></script>
а ваш формат имеет смысл для внешних ресурсов расположенных на других сайтах

Повторяюсь: некоторые плагины, компонеты или модули так устроены. Не я их писал Azn
Может быть стоит указвать как Вы пишите, мне без разницы.

Записан
denverkurt
Осваиваюсь на форуме
***

Репутация: +24/-0
Offline Offline

Пол: Мужской
Сообщений: 109



« Ответ #27 : 23.04.2016, 18:32:47 »

Joomla сама допишет нужный протокол и путь к папке (если дужмла стоит не в корне а где то в дочерних папках)
и на будущее отпадет необходимость править пути в тех местах. сама Joomla подгружает системные CSS и js таким же способом
Записан
iRaptor
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 39



« Ответ #28 : 19.07.2016, 21:34:29 »

Циклическая переадресация может возникать если на сервере работает связка Nginx + Apache

в таком случае нужно в файле /libraries/joomla/uri/uri.php заменить строку:
Код:
if (isset($_SERVER['HTTPS']) && !empty($_SERVER['HTTPS']) && (strtolower($_SERVER['HTTPS'])!= 'off'))
на:
Код:
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')

патч нужно применять после каждого обновления

Спасибо! Помог Ваш способ.

Хочу отдельно сказать что такие танцы применяю впервые. Другие сайты на этом же шаблоне, но на другом хостинге запустились без всей этой кодовшины. Прописал в форму сертификат, редирект в .htaccess и сайт поехал.
Записан
denverkurt
Осваиваюсь на форуме
***

Репутация: +24/-0
Offline Offline

Пол: Мужской
Сообщений: 109



« Ответ #29 : 19.07.2016, 21:39:01 »

если на другом хостинге все работает, значит там один Apache, без Nginx
Записан
Страниц: [1] 2  Все   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet