COVID2019 и это вот все. Друзья, вся эта история начинает плохо пахнет. Мойте руки, не ходите в люди. Отложите все плановые покупки и положите в носок заначку. Заприте ваших родителей, бабушек-дедушек на даче. Лучше перебдеть чем недобдеть. Берегите себя!

Переезд на новый домен + SSL


Aleks

Recommended Posts

Добрый день!
Попутно с переездом домена решил сразу настроить SSL на новом домене, чтобы 2 раза не кормить новое зеркало поисковикам.
Инструкцию по переезду на https для версии 1.5 использовал с yoda блога. http://ocshop.info/kostyli-dlya-normalnogo-pereezda-na-https-pod-opencart-1-5-x-dlya-togo-chtoby-ne-vypast-iz-indeksa-yandex/.


Все сделал, перепроверил не один раз. Кеши чистил и руками и модулями, браузеры чистил, проблема следующего рода осталась:
 

Mixed Content: The page at 'https://mysite.ru/' was loaded over HTTPS, but requested an insecure stylesheet 'http://mysite.ru/image/seocms.css'. This request has been blocked; the content must be served over HTTPS. 

 

response.hph выглядит следующим образом
 

Скрытый текст

<?php
class Response {
    private $headers = array(); 
    private $level = 0;
    private $output;
    
    public function addHeader($header) {
        $this->headers[] = $header;
    }

    public function redirect($url) {
        header('Location: ' . $url);
        exit;
    }
    
    public function setCompression($level) {
        $this->level = $level;
    }
        
    public function setOutput($output) {
        $this->output = $output;
    }

    private function compress($data, $level = 0) {
        if (isset($_SERVER['HTTP_ACCEPT_ENCODING']) && (strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') !== false)) {
            $encoding = 'gzip';
        } 

        if (isset($_SERVER['HTTP_ACCEPT_ENCODING']) && (strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'x-gzip') !== false)) {
            $encoding = 'x-gzip';
        }

        if (!isset($encoding)) {
            return $data;
        }

        if (!extension_loaded('zlib') || ini_get('zlib.output_compression')) {
            return $data;
        }

        if (headers_sent()) {
            return $data;
        }

        if (connection_status()) { 
            return $data;
        }
        
        $this->addHeader('Content-Encoding: ' . $encoding);

        return gzencode($data, (int)$level);
    }

    public function output() {
              
               
        if (!defined('HTTP_CATALOG')) $this->output = str_replace('index.php?route=common/home', '', $this->output);
        if ($this->output) {
            
        if (isset($_SERVER['HTTPS']) && (($_SERVER['HTTPS'] == 'on') || ($_SERVER['HTTPS'] == '1'))) {
        $this->output = str_replace(HTTP_SERVER, HTTPS_SERVER, $this->output);
            }
            if ($this->level) {
                $ouput = $this->compress($this->output, $this->level);
            } else {
                $ouput = $this->output;
            }    
                
            if (!headers_sent()) {
                foreach ($this->headers as $header) {
                    header($header, true);
                }
            }
            
            echo $ouput;
        }
    }
}
?>

 

Может есть у кого нибудь решение? Может не правильно что-то поправил?
Подскажите, пожалуйста!
 

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

Я читал данную инструкцию не один раз
но  "Данная инструкция актуальна для Opencart.PRO и Opencart.CMS версий 2.1.0.2.2 и выше! "

у меня версия 1.5

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

1 час назад, Aleks сказал:

Может есть у кого нибудь решение? Может не правильно что-то поправил?

Смотрите счётчики, чатики, callhunter'ы и т.д.

18 минут назад, markimax сказал:

а где вы покупали SEO CMS?

Упс... эээ... друг дал погонять:)

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

  • RHCk changed the title to Переезд на новый домен + SSL
6 минут назад, RHCk сказал:

Смотрите счётчики, чатики, callhunter'ы и т.д.

Упс... эээ... друг дал погонять:)

Не там "смотреть" ничего не надо

'http://mysite.ru/image/seocms.css'

Вот поэтому и вопрос ;)

И решение там простое

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

покупал на opencartforum.ru
под ником Stels32
 

Куплено
22-Август 16


покупался под домен stels32.ru с которого собственно и будет переезд

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

1 час назад, markimax сказал:

Не там "смотреть" ничего не надо


'http://mysite.ru/image/seocms.css'

Вот поэтому и вопрос ;)

И решение там простое

 

А какое в итоге решение?

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

1 час назад, Aleks сказал:

 

А какое в итоге решение?

Простое - раз вы "переехали" то в инструкции четко написано

Выполните пункты инструкции по обновлению

;)

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

20 минут назад, drewnya сказал:

Заменить на https://mysite.ru/image/seocms.css



 

Нет, не правильно
Надо просто удалить этот файл

Он генерится из файла темы.../agootemplates/stylesheet/seocmscss.tpl (т е css изменения вносить там, а еще лучше прямо в админке модуля на главной его - таб CSS сайта)

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

20 минут назад, markimax сказал:

Нет, не правильно
Надо просто удалить этот файл

Он генерится из файла темы.../agootemplates/stylesheet/seocmscss.tpl (т е css изменения вносить там, а еще лучше прямо в админке модуля на главной его - таб CSS сайта)


Дело не только в вашем модуле.
Плывут все стили и все скрипты и image в добавок.

Пациент по адресу "велорегион точка ру" там в консоле браузера красоты как елке новогодней

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

1 минуту назад, Aleks сказал:


Дело не только в вашем модуле.
Плывут все стили и все скрипты и image в добавок.

Пациент по адресу "велорегион точка ру" там в консоле браузера красоты как елке новогодней

Ааа ... тогда другой "вопрос"

Печально что у вас 1.5.x

Мы с Yoda сделали бесплатный HTTPS FIX под opencart 2.x

Под 1.5.x нету

Но можете взять код и руками вставить - он однотипный

SEO Fix HTTPS 2.x

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

 

6 минут назад, markimax сказал:

Ааа ... тогда другой "вопрос"

Печально что у вас 1.5.x

Мы с Yoda сделали бесплатный HTTPS FIX под opencart 2.x

Под 1.5.x нету

Но можете взять код и руками вставить - он однотипный

SEO Fix HTTPS 2.x

я так понял что вставляем здесь 
system/library/response.php

 

и здесь 
system/library/cache.php

?

 

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

5 минут назад, markimax сказал:

ДА там в xml указано какой код и где меняется или добавляется

<search regex="true"><![CDATA[~public function __construct(.*?)\{~]]></search>

вот этого нет в cache.php в версии 1.5
там 
 

Скрытый текст

<?php
class Cache { 
    private $expire = 3600; 
    private $ssl_protocol = 'http_';

    public function get($key) {
        $files = glob(DIR_CACHE . 'cache.' . preg_replace('/[^A-Z0-9\._-]/i', '', $key) . '.*');

        if ($files) {
            $cache = file_get_contents($files[0]);
            
            $data = unserialize($cache);
            
            foreach ($files as $file) {
                $time = substr(strrchr($file, '.'), 1);

                  if ($time < time()) {
                    if (file_exists($file)) {
                        @unlink($file);
                    }
                  }
            }
            
            return $data;            
        }
    }

      public function set($key, $value) {
        $this->delete($key);
        
        $file = DIR_CACHE . 'cache.' . preg_replace('/[^A-Z0-9\._-]/i', '', $key) . '.' . (time() + $this->expire);
        
        $handle = fopen($file, 'w');

        fwrite($handle, serialize($value));
        
        fclose($handle);
      }
    
      public function delete($key) {
        $files = glob(DIR_CACHE . 'cache.' . preg_replace('/[^A-Z0-9\._-]/i', '', $key) . '.*');
        
        if ($files) {
            foreach ($files as $file) {
                  if (file_exists($file)) {
                    unlink($file);
                }
                
            }
        }
      }
      
}
?>

 

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

26 минут назад, markimax сказал:

ДА там в xml указано какой код и где меняется или добавляется

<search regex="true"><![CDATA[~public function __construct(.*?)\{~]]></search>

вот этого нет в cache.php в версии 1.5
там 
 

Скрытый текст

<?php
class Cache { 
    private $expire = 3600; 
    private $ssl_protocol = 'http_';

    public function get($key) {
        $files = glob(DIR_CACHE . 'cache.' . preg_replace('/[^A-Z0-9\._-]/i', '', $key) . '.*');

        if ($files) {
            $cache = file_get_contents($files[0]);
            
            $data = unserialize($cache);
            
            foreach ($files as $file) {
                $time = substr(strrchr($file, '.'), 1);

                  if ($time < time()) {
                    if (file_exists($file)) {
                        @unlink($file);
                    }
                  }
            }
            
            return $data;            
        }
    }

      public function set($key, $value) {
        $this->delete($key);
        
        $file = DIR_CACHE . 'cache.' . preg_replace('/[^A-Z0-9\._-]/i', '', $key) . '.' . (time() + $this->expire);
        
        $handle = fopen($file, 'w');

        fwrite($handle, serialize($value));
        
        fclose($handle);
      }
    
      public function delete($key) {
        $files = glob(DIR_CACHE . 'cache.' . preg_replace('/[^A-Z0-9\._-]/i', '', $key) . '.*');
        
        if ($files) {
            foreach ($files as $file) {
                  if (file_exists($file)) {
                    unlink($file);
                }
                
            }
        }
      }
      
}
?>

Спасибо всем за наводку!
Пробую внедрить код, пока не очень выходит.
Если получится выложу код здесь для пользователей с версией 1.5.

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

1 минуту назад, Aleks сказал:

<search regex="true"><![CDATA[~public function __construct(.*?)\{~]]></search>

вот этого нет в cache.php в версии 1.5
там 
 

  Показать содержимое

Спасибо всем за наводку!
Пробую внедрить код, пока не очень выходит.
Если получится выложу код здесь для пользователей с версией 1.5.

vQmod ?

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

В 30.11.2016 at 18:03, markimax сказал:

vQmod ?

в редактировании response.php вроде все понятно, какую строку найти и как вставить.
засада в cache.php, вставку после class Cache {] сделал, вот с заменой [~public function __construct(.*?)\{~]] возник вопрос,
в 1.5.4.1 нет такой строки в cache.php.

 

ведь я правильно понял, что команда именно на поиск и замену? (выдержка из SEO Fix HTTPS)

<search regex="true"><![CDATA[~public function __construct(.*?)\{~]]></search>
        <add position="replace"><![CDATA[
        public function __construct$1{
        if ((isset($_SERVER['HTTPS']) && ($_SERVER['HTTPS'] == 'on' || $_SERVER['HTTPS'] == '1' || $_SERVER['HTTPS'])) || (!empty($_SERVER['HTTP_X_FORWARDED_PROTO']) && (strtolower($_SERVER['HTTP_X_FORWARDED_PROTO']) == 'https') || (!empty($_SERVER['HTTP_X_FORWARDED_SSL']) && $_SERVER['HTTP_X_FORWARDED_SSL'] == 'on'))) {
            $this->ssl_protocol = 'https_';
        }

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

почему-то все печально с версией 1.5хххх
пробовал и ocshop и ocstore
настройки ставил как описано в yoda блоге и как описано здесь
брал код и с блога и выбирал с фикса для 2-ой версии
ниче не помогает, все равно идет Mixed Content.
А если использовать код из фикса для 2-й версии еще ругается на 
" Undefined variable: output in "
Может есть еще какие варианты?
Или кто-то имеет реализацию по переезду на https в версиях 1.5?
Подскажите, люди добрые!!!

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

сайт veloregion точка ru
там сейчас голый ocshop pro 1.5
сначала пробовал Ocstore 1.5 но результат в принципе тот же
отдает микс контент в голом ocshop все css, js, image.
в боевом ocstoreо тоже самое, только большем количестве из-за наполнения магазина

  

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

16 минут назад, Aleks сказал:

сайт

Сделайте без фикса.

Пропишите https в конфигах (их два). Настройте редирект на https в .htaccess

Если будет провал в выдаче Яши, используйте инструмент Переобход старниц в вебмастере.

Там можно добавлять 10 страниц в день, но это подтолкнёт его быстрее проиндексировать сайт на https.

С Гуглом длительных проблем не будет, он "умнее и шустрее".

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

1 минуту назад, RHCk сказал:

Сделайте без фикса.

Пропишите https в конфигах (их два). Настройте редирект на https в .htaccess

Если будет провал в выдаче Яши, используйте инструмент Переобход старниц в вебмастере.

Там можно добавлять 10 страниц в день, но это подтолкнёт его быстрее проиндексировать сайт на https.

С Гуглом длительных проблем не будет, он "умнее и шустрее".

Резюмирую!
Возвращаю стандартные response и cache.php.
Настраиваю конфиги по прнципу
 

// HTTP
define('HTTP_SERVER', 'http://site.ru/');

// HTTPS
define('HTTPS_SERVER', 'https://site.ru/');

 

и

 

// HTTP
define('HTTP_SERVER', 'http://site.ru/admin/');
define('HTTP_CATALOG', 'http://site.ru/');

// HTTPS
define('HTTPS_SERVER', 'https://site.ru/admin/');
define('HTTPS_CATALOG', 'https://site.ru/');

 

 

настраиваю редирект в .htaccess, информацию беру здесь (на свой вкус)


У меня еще вопрос.
Стоит ли включать редирект c http на https в ПУ хостинга, или ограничиться 
редиректом в .htaccess?

 

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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.