Подтвердить что ты не робот

Joomla BASE HREF использует HTTP вместо HTTPS

Я хотел изменить свой сайт от http до https. Всегда.

Итак, я настроил свой apache соответственно. Теперь, когда я ввожу URL-адрес моего сайта (https://steamnet.de), он загружает сайт индекса отлично, но ни один из ссылочных элементов (CSS, изображения и др.)

Мне кажется, что он делает это, потому что base href установлен на http://steamnet.de/, а тыс. не использует https. Я настроил свой firefox, чтобы он не загружал смешанный контент.

Итак, как я могу сказать Joomla установить base href на https://steamnet.de (или иначе сделать сайт полностью ssl?)

Я попытался установить глобальный ssl-элемент принудительной настройки конфигурации joomla ( "SSL erzwingen" на немецком языке, $force_ssl в configuration.php) на "все", но затем сайт ломается с бесконечным перенаправлением ошибок 303. (В качестве запоздалой мысли: я был удивлен, обнаружив 303 вместо 301 здесь. Если бы кто-то мог объяснить, что я был бы благодарен)

(Laoneo предложил некоторые решения, которые не сработали, для полноты здесь есть список)

  • настройте $live_site на URL https.
  • при изменении $sef и $sef_rewrite.

Журналы apache: access.log

91.42.221.000 - - [03/Nov/2013:12:41:25 +0100] "GET / HTTP/1.1" 303 4854 "-" "Mozilla/5.0 (Gecko) Firefox/64"
91.42.221.000 - - [03/Nov/2013:12:41:25 +0100] "GET / HTTP/1.1" 303 516 "-" "Mozilla/5.0 (Gecko) Firefox/64"
91.42.221.000 - - [03/Nov/2013:12:41:25 +0100] "GET / HTTP/1.1" 303 516 "-" "Mozilla/5.0 (Gecko) Firefox/64"

error.log ничего не содержит при доступе, но следующие строки на reload

[Sun Nov 03 12:41:16 2013] [notice] Graceful restart requested, doing restart
[Sun Nov 03 12:41:16 2013] [error] (9)Bad file descriptor: apr_socket_accept: (client socket)
[Sun Nov 03 12:41:17 2013] [warn] RSA server certificate CommonName (CN) `Angelo Neuschitzer' does NOT match server name!?
[Sun Nov 03 12:41:17 2013] [notice] Apache/2.2.16 (Debian) PHP/5.3.3-7+squeeze17 with Suhosin-Patch proxy_html/3.0.1 mod_ssl/2.2.16 OpenSSL/0.9.8o configured -- resuming normal operations
4b9b3361

Ответ 1

Извините, но я не думаю, что текущий ответ действительно правильный. Этот ответ способствует взлому и обходит проблему. В следующий раз, когда вы обновите Joomla, вам придется обновить основной файл, потому что он будет переопределен.

На самом деле, если мы посмотрим в коде JURI в getInstance, мы можем это увидеть:

// Determine if the request was over SSL (HTTPS).
if (isset($_SERVER['HTTPS']) && !empty($_SERVER['HTTPS']) && (strtolower($_SERVER['HTTPS']) != 'off'))
{
        $https = 's://';
}
else
{
        $https = '://';
}

Вопрос в том, почему существуют серверы, где $_SERVER ['HTTPS'] явно не инициализируется. Хотя я не могу сказать вам, почему, что я выяснил для работы, это добавление этих строк в файл .htaccess в начале:

<IfModule mod_env.c>
   SetEnv HTTPS on
</IfModule>

При этом $_SERVER ['HTTPS'] инициализируется, и Juri:: current вернет то, что мы ожидаем, - url, начинающийся с https.

Ответ 2

Проверьте переменную * $live_site * в файле configuration.php и измените ее на свой адрес https.

Ответ 3

Внимание. Это взлом. Пожалуйста, сначала проверьте Даниэль Димитров. Если это сработает, пожалуйста, оставьте здесь комментарий.

Я нашел работу вокруг.

В файле includes/application.php я изменил следующий блок

if($router->getMode() == JROUTER_MODE_SEF) {
   $document->setBase(JURI::current());
}

в

if($router->getMode() == JROUTER_MODE_SEF) {
   $document->setBase(JURI::root());
}

Я не знаю, почему JURI::current() возвращает http URL вместо https, но после этого изменение сайта работает как ожидалось.

ОСТОРОЖНО: после этого изменения часть Администратора была сломана, пока я не отключил force_ssl в configuration.php. Я применяю SSL через мою конфигурацию apache, поэтому это не проблема для меня.

Ответ 4

Удаление тега <base> в целом должно решить ваши проблемы. Вы можете сделать это в файле index.php вашего шаблона следующим образом:

$doc = JFactory::getDocument();
unset($doc->base);

Поскольку это не основной взлом, он будет обновлен. Однако, если вы используете шаблон из магазина тем и хотите обновить шаблон в будущем, вам, возможно, придется добавить код обратно.


Литература: