база joomla HREF использует HTTP вместо HTTPS

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

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

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

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

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

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

  1. настроить $live_site до https URL-адрес.
  2. - зонда при изменении $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

4 ответов


извините, но я не думаю, что текущий ответ действительно правильный. Этот ответ способствует взлому и обходит проблему. В следующий раз, когда вы обновите 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.


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


внимание: это хак. Пожалуйста, сделайте тест Даниил dimitrovs не ответ первый. Если это сработает, пожалуйста, оставьте мне комментарий здесь.

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

в файле 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, чтобы это не было проблемой для меня.


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

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

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


ссылки: