Перейти к содержанию
Официальный форум поддержки Simpla

Некорректное отображение через https


Рекомендуемые сообщения

Здравствуйте, перенёс сайт на хостинг(точнее установил заново и перекинул темы) и после этого если открыть сайт через https все файлы имеют такой вид:
https://example.com/://example.com/design/default/css/style.css
В чём может быть проблема?

Ссылка на сообщение
Поделиться на другие сайты

"NetworkError: 404 Not Found - https://example.com/://example.com/design/default/css/index.css"

index.css

"NetworkError: 404 Not Found - https://example.com/://example.com/design/default/js/fancybox/jquery.fancybox-1.3.4.css"

jquery...3.4.css

"NetworkError: 404 Not Found - https://example.com/://example.com/design/default/js/ctrlnavigate.js"

ctrlnavigate.js

"NetworkError: 404 Not Found - https://example.com/://example.com/design/default/js/jquery-ui.min.js"

jquery-ui.min.js

"NetworkError: 404 Not Found - https://example.com/://example.com/design/default/js/ajax_cart.js"

ajax_cart.js

"NetworkError: 404 Not Found - https://example.com/://example.com/design/default/js/baloon/js/baloon.js"

baloon.js

"NetworkError: 404 Not Found - https://example.com/://example.com/design/default/js/baloon/css/baloon.css"

В консоли ошибок и так все файлы css,js и изображения

Ссылка на сообщение
Поделиться на другие сайты

Где лежит сайт? На хосте или на локалке?

NetworkError: 404 Not Found

- ошибка сети. Файл не наден https://example.com/ и т.д.
Это пока ни о чем не говорит, кроме того, что файл не найден.
Ссылка на сообщение
Поделиться на другие сайты

Просто файлы через ФТП видите? Смотрите настройки РНР хоста. Может пробный период и есть ограничения по РНР? После того, как установил заново, но не перебросил темы, работал? Может хост не поддерживает CSS или РНР нужной версии. Вариантов много, дайте чуть больше информации.

Ссылка на сообщение
Поделиться на другие сайты

у меня впс-ка, по http работает всё как надо, вот какая ссылка должна быть:
https://example.com/design/default/css/index.css
а вот что получается
https://example.com/://example.com/design/default/css/index.css

по http всё работает как надо

Ссылка на сообщение
Поделиться на другие сайты

Ни х... не пойму. А почему Вы заходите по этому урлу? Почему не зайти по http://example.com/simpla и уже от туда править index.css? Почему Вы пытаетесь попасть на css, а не на рнр или html?

Ссылка на сообщение
Поделиться на другие сайты

при открытии сайта ВСЕ ссылки на сайте отображаются неверно, проблема в симпле 2.2.1, пока востановил бэкап 2.1.5

Ссылка на сообщение
Поделиться на другие сайты

Подождите... 2.1 и 2.2, на сколько я видел из этого форума, немного разные (2.2 не ковырял). Вы что, пытались их объединить? Я же говорю (пишу), мало информации. Ход действий не понятен.

Ссылка на сообщение
Поделиться на другие сайты

pikusov, я пока всё откатил, на 2.2.1 некорректно работают большинство дополнений от сторонних разработчиков, да и эта ошибка с https..., я вот подумал, может я где-то в папке темы или ещё где что-то в .htacess не поменял? Вобщем его на локали с дднс допилят разработчики и потом выложу, если не разберусь-напишу и скину доступы, на локали скидывать доступы не имеет смысла, https-а нет там.

Но вобщем суть была такова, сайт загружает весь контент по http нормально, но если заменить ссылку в заголовке на https то все пути на сайте вместо того чтобы поменять "http://" на "https://" прописывают "https://example.com/" и в итоге вот так вот выглядит все пути при загрузке "https://example.com/://example.com/design/default/css/index.css"

Сервер впс-ка, nginx+апач, ось центос, пробовал запускать без nginx, но не в нём дело, конфиг брал с этого форума.

Ссылка на сообщение
Поделиться на другие сайты

в 2.2.1 было применено дополнительная проверка на https, а так же доступна переменная в шаблоне $config->protocol в свою очередь он возвращает http или https.

Config.php
после

$protocol = strtolower(substr($_SERVER["SERVER_PROTOCOL"],0,5))=='https'? 'https' : 'http';


вставить

if($_SERVER["SERVER_PORT"] == 443)			$protocol = 'https';					$this->vars['protocol'] = $protocol;
Ссылка на сообщение
Поделиться на другие сайты
  • 1 год спустя...

 

в 2.2.1 было применено дополнительная проверка на https, а так же доступна переменная в шаблоне $config->protocol в свою очередь он возвращает http или https.

 

Config.php

после

$protocol = strtolower(substr($_SERVER["SERVER_PROTOCOL"],0,5))=='https'? 'https' : 'http';

вставить

if($_SERVER["SERVER_PORT"] == 443)
			$protocol = 'https';
			
		$this->vars['protocol'] = $protocol;

Здравствуйте, а не подскажите, где найти нужный файл для версии 2.3.6? В папке config есть файл config.php, но в нем отсутствует данная запись. Спасибо!

Ссылка на сообщение
Поделиться на другие сайты

api/Config.php

Спасибо!

 

У меня аналогичная проблема, как у создателя темы, только до этого https не использовался.

Строки, которые советовали добавить выше, у меня уже были:

 

// Протокол
        $protocol = strtolower(substr($_SERVER["SERVER_PROTOCOL"],0,5))=='https'? 'https' : 'http';
        if($_SERVER["SERVER_PORT"] == 443)
            $protocol = 'https';
 
        $this->vars['protocol'] = $protocol;        
        $this->vars['root_url'] = $protocol.'://'.rtrim($_SERVER['HTTP_HOST']);
        if(!empty($subdir))
            $this->vars['root_url'] .= '/'.$subdir;

 

А если в .htaccess прописывать:

 

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP:SSL} !=1 [NC]
RewriteRule ^(.*) https://www.сайт.com/$1 [L,R=301]
 
Хром ругается, мол бесконечная переадресация, возможно вы с таким сталкивались?
Ссылка на сообщение
Поделиться на другие сайты

Попробуйте удалить это.

 

Или так пробуйте:

 

RewriteEngine On

RewriteBase /

RewriteCond %{HTTPS} off

RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

Ссылка на сообщение
Поделиться на другие сайты

Попробуйте удалить это.

 

Или так пробуйте:

 

RewriteEngine On

RewriteBase /

RewriteCond %{HTTPS} off

RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

 

Пробовал, хром выдает следующее:

На этой странице обнаружена циклическая переадресация
Ссылка на сообщение
Поделиться на другие сайты

А если убрать данные записи с .htaccess и прописать https://domen.ru то пишет что не безопасное подключение, из-за того, что все стили и скрипты подгружаются с адреса http://domen.ru/css

 

п.с. domen.ru - первое что пришло в голову.

Ссылка на сообщение
Поделиться на другие сайты
  • 1 месяц спустя...

Разобрался, нужно удалить с файла /api/Config.php следующие строки

$protocol = strtolower(substr($_SERVER["SERVER_PROTOCOL"],0,5))=='https'? 'https' : 'http';
if($_SERVER["SERVER_PORT"] == 443)

 

И оставить

$protocol = 'https';
Ссылка на сообщение
Поделиться на другие сайты

Но теперь появилась проблемка, сайт доступен как через http, так и через https, что делать с этим счастьем?)

Ссылка на сообщение
Поделиться на другие сайты
  • 2 недели спустя...

Но теперь появилась проблемка, сайт доступен как через http, так и через https, что делать с этим счастьем?)

 

Решение тут

Ссылка на сообщение
Поделиться на другие сайты

Решение тут

В принципе да, можно попробовать, натыкался на данную статью, но решил, что это кривовато, но как вариант! Спасибо!

Ссылка на сообщение
Поделиться на другие сайты

Используя костыли решил проблему так:


 


Добавил в файл index.tpl перед закрывающим тегом </body> следующие строки:



<!-- http to https -->

<script type="text/javascript">
if (window.location.protocol != "https:")
window.location.href = "https:" + window.location.href.substring(window.location.protocol.length);
</script>

<!-- http to https (The End)-->
Ссылка на сообщение
Поделиться на другие сайты
  • 1 месяц спустя...

Api/config.php в версии 2.1.5 строка 45:  в условии выставил везде https у меня работает http и https, все ок, ошибок ничего не наблюдаю пути еще лучше выставлять не http://css/style.css или https://css/style.css , а без указания протокола //css/style.css

$protocol = strtolower(substr($_SERVER["SERVER_PROTOCOL"],0,5))=='https'? 'https' : 'https';

Если нужен редирект принудительно на https: вот код:

if(!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] == ""){
    $redirect = "https://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
    header("HTTP/1.1 301 Moved Permanently");
    header("Location: $redirect");
}

ставим его между строк в файле index.php в корне сайта и получаем:

 

// Если все хорошо
if(($res = $view->fetch()) !== false)
{

/////////////////// НОВЫЙ КОД ///////////////////////////

if(!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] == ""){
    $redirect = "https://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
    header("HTTP/1.1 301 Moved Permanently");
    header("Location: $redirect");
}

////////////////////////////END NEW CODE////////////////////

    // Выводим результат
    header("Content-type: text/html; charset=UTF-8");    
    print $res;

 

вроде все работает сильно не проверял

Изменено пользователем bdenisska
Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...