[Помогите] SSL и "canonical"

Тема в разделе "OpenCart", создана пользователем five555, 14 апр 2015.

  1. five555

    five555

    Регистрация:
    18 янв 2014
    Сообщения:
    221
    Симпатии:
    147
    Добрый день!
    Сайт sfera.by
    На главной странице при просмотре кода страницы "canonical" показывается с http:// вместо https://
    Код:
    <base href="https://sfera.by/" />
    ...
    <link href="http://sfera.by/" rel="canonical" /><link
    При этом на других страницах сайта всё нормально отображается:
    Код:
    <base href="https://sfera.by/" />
    ...
    <link href="https://sfera.by/avto-cignalizacii" rel="canonical" />
    Подскажите как исправить, пожалуйста.
     
  2. ГорМастер

    ГорМастер

    Регистрация:
    1 апр 2013
    Сообщения:
    115
    Симпатии:
    22
    найдите соответствующую переменную в \catalog\view\theme\...\template\common\header.tpl
    и гляньте её формирование в \catalog\controller\common\header.php
    Кроме того, обратите внимание на vqmod'ы - возможно, кто-то из них подменяет.
     
  3. fanton123

    fanton123

    Регистрация:
    24 дек 2012
    Сообщения:
    256
    Симпатии:
    29
    Проблема нет только там. У вас еще картинки грузятся через http
     
  4. five555

    five555

    Регистрация:
    18 янв 2014
    Сообщения:
    221
    Симпатии:
    147
    Да, с картинками тоже проблема, но по http только картинки блога и новостей грузятся.
     
  5. fanton123

    fanton123

    Регистрация:
    24 дек 2012
    Сообщения:
    256
    Симпатии:
    29
    я делал так, в файле config.php в корне:


    Просто поменял все "http://" на "https://".
    чистка кеша и все заработало.
     
  6. five555

    five555

    Регистрация:
    18 янв 2014
    Сообщения:
    221
    Симпатии:
    147
    Всё также стоит:
    Код:
    // HTTP
    define('HTTP_SERVER', 'http://sfera.by/');
    define('HTTP_IMAGE', 'http://sfera.by/image/');
    
    // HTTPS
    define('HTTPS_SERVER', 'https://sfera.by/');
    define('HTTPS_IMAGE', 'https://sfera.by/image/');
     
  7. MrNicholas

    MrNicholas

    Регистрация:
    14 янв 2016
    Сообщения:
    2
    Симпатии:
    0
    five555, .подскажи пож-та как ты сделал что rel canonical стало https ?
    --- Добавлено, 14 янв 2016 ---
    five555, Подскажи как изменить canonical на https
    --- Добавлено, 14 янв 2016 ---
    и По ходу все страницы на https. D конфтиге и одном и втором все сделал как положено. В админке включил ssl. Только вот многое так и висит на http. Файл .htaccess поправил. Вот пример view-source:https://manka-vstanka.ru/detskaya-odejda/komplekt-dlya-novorojdenih/
     
  8. five555

    five555

    Регистрация:
    18 янв 2014
    Сообщения:
    221
    Симпатии:
    147
    Я не помню уже. Вроде вот этот модуль
    Вот он за денежку
     
  9. MrNicholas

    MrNicholas

    Регистрация:
    14 янв 2016
    Сообщения:
    2
    Симпатии:
    0
  10. kommunik

    kommunik

    Регистрация:
    23 авг 2016
    Сообщения:
    20
    Симпатии:
    1
    Подскажите пожалуйста, как сделали руками? Ситуация аналогичная.
    Спасибо.
     
  11. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    2.053
    Симпатии:
    779
    Руками означает: просто вбить правильную ссылку в шаблон header.tpl вместо вывода переменной.
     
    kommunik нравится это.
  12. kommunik

    kommunik

    Регистрация:
    23 авг 2016
    Сообщения:
    20
    Симпатии:
    1
    Добрый день, спасибо за подсказку, но в header.tpl нашел в начале только переменные по выводу title, description, keywords и icon, ничего касательно canonical.
    Код:
    <!DOCTYPE html>
    <html dir="<?php echo $helper->getDirection(); ?>" class="<?php echo $helper->getDirection(); ?>" lang="<?php echo $lang; ?>">
    <head>
    <!-- Mobile viewport optimized: h5bp.com/viewport -->
    <meta name="viewport" content="width=device-width">
    <meta charset="UTF-8" />
    <title><?php echo $title;
    if (isset($_GET['page'])) {
    echo " | Страница ". ((int) $_GET['page']);
    } ?></title>
    <base href="<?php echo $base; ?>" />
    <?php if ($description) { ?>
    <meta name="description" content="<?php echo $description; if (isset($_GET['page'])) {
    echo " | Страница ". ((int) $_GET['page']);
    } ?>" />
    <?php } ?>
    <?php if ($keywords) { ?>
    <meta name="keywords" content="<?php echo $keywords; ?>" />
    <?php } ?>
    <?php if ($icon) { ?>
    <link href="<?php echo $icon; ?>" rel="icon" />
    <?php } ?>
    <?php foreach ($links as $link) { ?>
    <link href="<?php echo $link['href']; ?>" rel="<?php echo $link['rel']; ?>" />
    <?php } ?>
    <?php foreach ($helper->getCssLinks() as $link) { ?>
    <link href="<?php echo $link['href']; ?>" rel="<?php echo $link['rel']; ?>" />
    <?php } ?>
        <?php if( $themeConfig['theme_width'] &&  $themeConfig['theme_width'] != 'auto' ) { ?>
                <style> #page-container .container{max-width:<?php echo $themeConfig['theme_width'];?>; width:auto}</style>
        <?php } ?>
        
        <?php if( isset($themeConfig['use_custombg']) && $themeConfig['use_custombg'] ) {    ?>
        <style>
            body{
                background:url( "image/<?php echo $themeConfig['bg_image'];?>") <?php echo $themeConfig['bg_repeat'];?>  <?php echo $themeConfig['bg_position'];?> !important;
            }</style>
        <?php } ?>
    <?php
        if( isset($themeConfig['enable_customfont']) && $themeConfig['enable_customfont'] ){
        $css=array();
        $link = array();
        for( $i=1; $i<=3; $i++ ){
            if( trim($themeConfig['google_url'.$i]) && $themeConfig['type_fonts'.$i] == 'google' ){
                $link[] = '<link rel="stylesheet" type="text/css" href="'.trim($themeConfig['google_url'.$i]) .'"/>';
                $themeConfig['normal_fonts'.$i] = $themeConfig['google_family'.$i];
            }
            if( trim($themeConfig['body_selector'.$i]) && trim($themeConfig['normal_fonts'.$i]) ){
                $css[]= trim($themeConfig['body_selector'.$i])." {font-family:".str_replace("'",'"',htmlspecialchars_decode(trim($themeConfig['normal_fonts'.$i])))."}\r\n"    ;
            }
        }
        echo implode( "\r\n",$link );
    ?>
    
    Могли бы уточнить пожалуйста, спасибо.
     
  13. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    2.053
    Симпатии:
    779
    kommunik, а какой модуль у вас отвечает за вывод этой ссылки?
    И вообще, это костыль. Не надо ничего никуда руками вбивать. Проверьте, что у вас везде в конфигах прописана правильно ссылка для https и в админке включён SSL.
    Если всё везде правильно, значит ваш SEO модуль не рассчитан на работу с https и нужно его чуть допилить.
     
    kommunik нравится это.
  14. kommunik

    kommunik

    Регистрация:
    23 авг 2016
    Сообщения:
    20
    Симпатии:
    1
    Модуль, пока SeoPackPro, но чувствую придется мне все таки его заменить. Пока увы не представилось возможности протестить мод PALADIN.

    Проверил, спасибо. Все настроено и прописано, похоже действительно он не может работать с ssl (по крайне мере частично он не покрывает функционал, при наличии ssl, получается), чувствую приближение к замене модуля SEO.
     
  15. samuel_L

    samuel_L

    Регистрация:
    6 окт 2012
    Сообщения:
    214
    Симпатии:
    131
    komunnik, какой у вас метод формирования URL стоит в настройках магазина? SeoPRO или SeoURL?
     
    kommunik нравится это.
  16. kommunik

    kommunik

    Регистрация:
    23 авг 2016
    Сообщения:
    20
    Симпатии:
    1
    Добрый день, спасибо. У меня в настройках сервера параметр использовать SEO URL's, включен. Параметр seopro выключен.
     
  17. samuel_L

    samuel_L

    Регистрация:
    6 окт 2012
    Сообщения:
    214
    Симпатии:
    131
    Какие решения я встречал:
    1) в каталог/контроллер/сео_урл.пхп
    после
    $url_info = parse_url(str_replace('&amp;', '&', $link));
    написать
    $url_info['scheme'] = 'https';

    2) в конфиге прописать

    // HTTP
    define('HTTP_SERVER', 'https://mysite.com/');
    define('HTTP_CATALOG', 'https://mysite.com/');

    // HTTPS
    define('HTTPS_SERVER', 'https://mysite.com/');
    define('HTTPS_CATALOG', 'https://mysite.com/');

    Попробуйте
     
    kommunik нравится это.
  18. kommunik

    kommunik

    Регистрация:
    23 авг 2016
    Сообщения:
    20
    Симпатии:
    1
    Cпасибо Вам большое, второй вариант решения помог. У меня там действительно было прописано для протокола //http, адреса тоже начинающиеся с http://
     
  19. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    2.053
    Симпатии:
    779
    А говорили, что в конфигах всё правильно.

    Неправильная ссылка для https в конфиге - это самая распространённая ошибка.
     
    kommunik нравится это.
  20. kommunik

    kommunik

    Регистрация:
    23 авг 2016
    Сообщения:
    20
    Симпатии:
    1
    Да было вот так
    // HTTP
    define('HTTP_SERVER', 'http://mysite.com/');
    define('HTTP_CATALOG', 'http://mysite.com/');

    // HTTPS
    define('HTTPS_SERVER', 'https://mysite.com/');
    define('HTTPS_CATALOG', 'https://mysite.com/');

    Я считал что так и должно быть и это правильный конфиг. Изменил для //HTTP по рекомендации @samuel_L , и все стало ок..
    Еще раз спасибо всем!