Наткнулся на модификатор который решил вопрос, теперь весь контент с сайта отlается по https http://www.opencart.com/index.php?r...740&filter_search=https&filter_download_id=44 также там есть ссылка в комментах на то чо делал автор. я кроме htacess выполнил и работает. http://stackoverflow.com/questions/36272499/opencart-2-2-x-ssl-for-all-request/37996993#37996993
Обратил внимание, что при переходе на SSL возникает ошибка с заказами. Все старые заказы выдают ошибку и нельзя у них поменять статус (тоже вылетает ошибка). Это относится к заказам, сделанным до применения сертификата и редиректа на https Решается заменой в базе у всех заказов старого урла магазина с http на https. Пользуюсь софтинкой для работы с базой, т.е. сделал автозамену за пару кликов.
еще вылезла ошибка с добавлением картинки к товару, производителю и т.д. т.е. не добавляется было у кого такое - как решить?
Обновила движок с 2.0.3.1 на 2.2.0, обновляла на локалке, все по инструкции, с учетом уже выявленных ошибок, все конфиги исправила (про storage), в общем, все четко, все работает. На домене с http (без подключенного сертификата). Стоит переключиться на https, вылезает ошибка: Код: Warning: Unknown: open(/tmp/php_sess/sess_360e98d........., O_RDWR) failed: Permission denied (13) in Unknown on line 0Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/tmp/php_sess) in Unknown on line 0 При этом хочу пояснить, как меняю http на https (потому что не через админку): есть две директории - старая рабочая и новая (рабочая только на http). В старой директории ничего не трогаю, стоит по-прежнему 2.0.3.1, это понятно, домен с SSL работает четко. К новой прилинкован поддомен, к нему, разумеется, нет SSL, так проверяю http (меняя конфиги, ясное дело). Пока включен поддомен на новую папку, никаких проблем на сайте не обнаруживается. Стоит включить сам домен с SSL, все, ошибка. Написала хостеру по поводу настроек сессий, но возможно, причина в измененном session.php? Пробовал кто-то работать на домене с SSL в 2.2.0.? Кстати: на домене с SSL даже если сайт гружу по http все равно ошибка... Только дизайн не сбивается. Если грузить по https, то дизайн весь пропадает. В логах в админке тоже видна ошибка: Код: 2016-09-27 12:21:56 - PHP Warning: session_start(): open(/tmp/php_sess/sess_4d493a........., O_RDWR) failed: Permission denied (13) in старая директория/public_html/system/library/session.php on line 21 Вот меня смущает, что я могла где не указать, из-за чего в ошибке СТАРАЯ (рабочая) директория на хостинге прописывается? ======================= Заметила интересный нюанс, ссылки на картинки на http разительно отличаются от ссылок той же страницы на https, и на безопасном они совсем изначально неправильные! НИЧЕГО не меняла, кроме протокола в адресной строке. Пример: и следом меняю ТОЛЬКО протокол, а получаю совсем другую картину: И вот не могу понять, почему название категории на https добавляется ПЕРЕД папкой image? Исправила вручную, но в админку все равно зайти не могу и внизу светится все та же ошибка сессий.
с доступами к папкам это к хостеру. А вообще от ssl только минус трафик. Я вот захожу на знакомые мне сайты у которых ssl, а меня браузер начинает пугать словами про незащищенный трафик итд. Я естественно повинуюсь и закрываю сайт. Так что подумайте об этом.
А с неправильной конфигурацией ссылок? Каким образом название категории может прописываться ДО папки image? Причем только по безопасному протоколу... В общем, по https нормально не работают ссылки второго и более уровня вложенности. Заменила seo_url на оригинальный, эффекта ноль... ... Вопрос по сессиям хостер, кажется, решил, ошибки пропали... в админку зашла... но это ничего не меняет, ЧПУ элементов страниц генерится неверный. Требование Яндекс-кассы.
у вас в исходнике виду <base href="" /> пустоты там не должно быть по умолчанию. Видимо где то напутали...
Спасибо за поддержку, просто уже не знаю, куда копать... В header.tpl стандартное Код: <base href="<?php echo $base; ?>" /> Откуда берется эта переменная в безопасном и обычном режимах? Я не могу понять, почему косяк именно на https. Только на нем.
Ну контроллер я точно не трогала... Насколько могу понять, он как раз отсылает в конфиг... Пойду перепроверю.. Код: if ($this->request->server['HTTPS']) { $server = $this->config->get('config_ssl'); } else { $server = $this->config->get('config_url'); } if (is_file(DIR_IMAGE . $this->config->get('config_icon'))) { $this->document->addLink($server . 'image/' . $this->config->get('config_icon'), 'icon'); } $data['title'] = $this->document->getTitle(); $data['base'] = $server; $data['description'] = $this->document->getDescription(); $data['keywords'] = $this->document->getKeywords();
Что-то я понимаю, что ничего не понимаю. Курс на пропавшую часть $base верный, сравниваю исходный код страницы на http и https и понимаю, что в ссылках на картинки пропала именно часть адреса с доменом... Но вот куда она могла "пропасть"? Конфиг проверила, вроде все так...
а теперь потрогайт )) Попробуйте вручную задать адрес $server = 'https://sait....'; А потом глянуть появился ли нормальный тег base href= Может какой то модуль у вас еще ломает ... это как вариант..
Модули у меня все стандартные... Но такая замена исправила ситуацию... Спойлер: Спасибо Vlad, спасибо огромное!!!!! Тег появился, страница заработала, как положено... И что делать? Как искать, где он "пропадает"? Не оставлять же костыль?
В файле admin/controller/setting/setting.php есть строки Код: public function theme() { if ($this->request->server['HTTPS']) { $server = HTTPS_CATALOG; } else { $server = HTTP_CATALOG; } А в конфиге у меня не HTTPS_CATALOG, а HTTPS_SERVER Это не может быть причиной? ... Не. Поняла. HTTPS_CATALOG прописан в админке в конфиге... Как жаль, что я не знаю PHP, все времени нет заняться... В Яндекс кассе (в файлах) есть упоминание HTTPS_CATALOG, но вот что и зачем - не понимаю... Я не могу пока на 2.3 (хотя на локалке уже опробовала)... Яндекс-касса только до 2.2 версии поддерживает...
у меня Код: // HTTP define('HTTP_SERVER', 'http://op2200/'); // HTTPS define('HTTPS_SERVER', 'http://op2200/');
У меня все на https, но сути это не меняет, все равно $server не работала, а вписывание домена вручную грубо, но работает... config в корневой: Код: // HTTP define('HTTP_SERVER', 'https://ms-autotech.ru/'); // HTTPS define('HTTPS_SERVER', 'https://ms-autotech.ru/'); config в админке: Код: // HTTP define('HTTP_SERVER', 'https://ms-autotech.ru/директория админки/'); define('HTTP_CATALOG', 'https://ms-autotech.ru/'); // HTTPS define('HTTPS_SERVER', 'https://ms-autotech.ru/директория админки/'); define('HTTPS_CATALOG', 'https://ms-autotech.ru/');
Всё в ту же тему "пропавшего" названия домена (или зря смешиваю красное с холодным?). Неправильно формируется тег image:loc в карте сайта. Точно так же не хватает названия доменного имени. Подскажите, пожалуйста, как добавить "костыль" правильно? Есть код в google_sitemap.php: Код: $output .= '<image:loc>' . $this->model_tool_image->resize($product['image'], $this->config->get($this->config->get('config_theme') . '_image_popup_width'), $this->config->get($this->config->get('config_theme') . '_image_popup_height')) . '</image:loc>'; насколько я понимаю, именно он генерирует ссылку на картинку в карте сайта... Ссылка получается урезанная, без указания доменного имени. Куда что добавить, чтобы валидаторы не ругались?
вот так не грубо. в файле \catalog\controller\startup\startup.php находим Код: // Settings и перед ним вставим PHP: $this->config->set('config_ssl', HTTPS_SERVER); после этого думаю получите то что нужно.
@Romans , просто фантастика!)) Все классно (вернула в контроллер переменную, убрала домен), и в карте сайта сразу ссылки нормальными стали для картинок. Огромнейшее спасибо!