Переезд на HTTPS и снова пригорает от проблем с MaxSite CMS

Октябрь, 16th 2017Рубрика: Web 3070
Подписаться на комментарии по RSS

переезд на HTTPS

Заметили сегодня замочек в адресной строке? Это не просто так - в блоге, наконец, начались масштабные изменения, и какое-то время его будет не хило колбасить в поисковой выдаче. Но, обо всём по порядку...

Процесс полного преобразования блога я решил разбить на два этапа - в начале, навести, хоть какое-то, подобие порядка, исправив глобальные косяки, и только после этого заниматься новым движком и дизайном. За выходные удалось побороть проблему с каноническими url, о которой рассказывал вчера (оценить результат работы можно будет спустя только пару-тройку недель). Теперь, дороги назад уже не было и, в ближайшее время, однозначно предстояло пройти полную переиндексацию сайта, потому сразу замутил и переход на протокол HTTPS (а это как переезд на новый домен).

Я не склонен доверять всякого рода "экспертам" SEO, потому воспользовался первоисточником на Яндексе - Деликатный переезд (или рекомендации Яндекса по переезду на HTTPS) и (продолжение). Почитайте - весьма полезно, перепостить сюда статью смысла особого не вижу. Другой вопрос зачем мне вообще понадобился подобный переезд? Хоть Яндекс и утверждает, что на поисковую выдачу это не влияет (пока не влияет), но думаю это лишь вопрос времени.

Google официально заявляет что переход на https является одним из факторов ранжирования и приоритет в выдаче отдается именно таким сайтам. Хотя данный «пряник» от гугла еще нуждается в проверке, зато новые версии Google Chrome уже вовсю помечают незащищённые страницы, тем самым пугая пользователей, что вовсе не радует. С другой стороны, финансово, мне подобный переезд ничего не стоит - хостер бесплатно предоставляет SSL сертификаты Let's Encrypt на 90 дней с автопроблением, для блога этого достаточно.

Так что с организационной частью всё путём, сертификат мне выдали в течение получаса. А вот теперь расскажу отчего у меня бомбануло, и виной тому снова движок MaxSite и некоторые ущербные члены сообщества. Собственно, за шаблон и ресурсы я не переживал, везде использовались относительные ссылки, переезд не сулил сложностей - так я думал до момента переключения...

Про блогеров-мудаков и отчего у меня бомбануло

Грабли вылезли откуда не ждал - в путях подключения скриптов и стилей шаблона было обращение к системной переменной:

<?= getinfo('stylesheet_url') ?>

Здесь то меня и поджидал очередной косяк, CMS формировала абсолютный путь с http вместо ожидаемого https. Никакой информации на сайте разработчика на эту тему, разумеется нет - не царское это дело, хоть как-то, документировать своё творение. На форуме поддержки еще забавнее - в соответствующей ветке обсуждения (не я один интересовался данной темой) нашлась ссылка на тематический блог с громким названием "Служба Заботы MaxSite CMS", где никакой заботой даже не пахнет. По факту, попадаем еле живой ресурс, где нужную информацию прячут под спойлер с просьбой зарегистрироваться и оставить не менее двух комментариев. Это что за гигант продвижения, до такого додумался?

Я конечно не обсуждаю правила ресурса, просто высказываю своё мнение. По моему прятать информацию под скрытый контент несколько странно для "службы заботы".

комментарий на сайте

Этот коммент, оставленный одним из посетителей, я взял именно с той странички. А какие еще комментарии ожидал увидеть автор? Так он еще отвечает что "это единственный способ вовлечь посетителей в жизнь ресурса. А то берут и даже спасибо лень сказать...".

Что, правда, единственный способ? Так может от того и бегут, что автор поступает как мудак? Так это не работает! Вы либо создаёте контент для людей, вкладывая душу в свой проект, либо тихо ноете о несчастной судьбе на задворках интернета. К сожалению, мне так и не удалось, по этому поводу, напихать писюнов автору на его ресурсе (он тут же тёр их безжалостно), потому, с чистой совестью, делаю это здесь. А ведь, не веди он себя, как олень ватный, мог спокойно получить бэклинк на свой ресурс.

В своё время, в статье о снятии пароля с BIOS и HDD на ноутбуке, от меня уже прилетало аналогичным форумным "гуру", обладающими некой, строго оберегаемой, крупицей информации. Это не проблема интернета, в конечном счете, всё сводится к людям, пытающихся получить какую-то мелкую выгоду или потешить собственное самолюбие. Приведенная в конце статьи ссылка на найденный мной ресурс с паролями помогла уже многим подписчикам и стала одной самых читаемых в блоге.

Так что мой совет всем блогерам, не будьте такими жлобами, ведь мы здесь для того, чтобы решать проблемы, а не плодить новые в погоне за подписчиками. Будет интересный, полезный контент - будут и подписчики, а значит и развитие проекта.

MaxSite CMS и HTTPS. Почему не подгружаются стили и скрипы и как это исправить.

Перед переходом на протокол HTTPS в первую следует проверить что все пути подключаемых файлов (стили, скрипты, шрифты) и любые ссылки, которые встречаются на сайте были относительными или абсолютными, но с обязательным указанием протокола https. В противном случае, они просто не подключатся. Тут мы и сталкиваемся с очередной недоработкой MaxSite CMS - из переменной шаблона stylesheet_url подставляется абсолютный путь с протоколом http вместо https. Соотвественно все стили, скрипты и канонические ссылки (которым ещё не успел нарадоваться) идут лесом. На удивление, решение нашлось на на форуме opencart (там вроде тоже используется фреймворк CodeIgniter).

Сперва в .htaccess предлагается настроить редирект всех http-запросов на https. Я этого у себя не делал, просто включил на хостинге использование https и этого хватило. Однако, вдруг понадобится тот конфиг, лучше напишу:

# Redirect to HTTPS
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

А теперь самое главное - страшная тайна, скрытая под катом (правда смешно). В файле /application/config/mso_config.php нужно вставить код (добавляем в самое начало):

# для корректной работы с HTTPS
if(
(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on") || 
(isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')
)
{
$_SERVER['HTTPS'] = 'on';
$_SERVER['REQUEST_SCHEME'] = 'https';
$config['base_url'] = str_replace("http:", "https:", $config['base_url']);
}

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

панель яндекс вебмастер. склейка домена

Если считаете статью полезной,
не ленитесь ставить лайки и делиться с друзьями.

Комментариев: 18

  1. 2017-10-22 в 07:38:23 | Сергей Руппель

    Все понятно, по вашей статье тоже переехал на HTTPS большое спасибо! Подскажите в sitemap.xml у вас тоже ссылки с https как мне настроить? у меня тоже maxsite) и если есть еще что то кроме sitemap может расскажете? например теперь ссылки на главной странице в админке у меня стали с https (я имею ссылки на сайт разработчика, гитхаби т.д) И проверка последней версии cms так же перестала работать из за переезда

  2. 2017-10-22 в 07:39:04 | Сергей Руппель

    Хотя в самом php файле ссылки указаны вада - //mysite.ru/page

  3. 2017-10-22 в 07:42:39 | Сергей Руппель

    Надо же быть таким невнимательным) Настройка карты сайта была на уровне плагина))

  4. 2017-10-22 в 11:13:17 | Дмитрий Мишенков

    Добрый вечер Сергей. Если вы прочитали весь пост, а скорее всего так и есть, то заметили что я не собираюсь в дальнейшем оставаться на MaxSite, просто вопрос переезда на новый движок довольно не простой и требует серьёзной работы и свободного времени. В sitemap.xml естественно тоже меняются ссылки на https. Сегодня размещу один интересный материальчик от Яндекса с прошлогоднего семинара для web-разработчиков, посмотрите, многие вопросы снимутся. Сам только сегодня об этом узнал. Будут вопросы - задавайте, что знаю расскажу.

  5. 2017-11-09 в 11:34:52 | Дмитрий

    Доброе время суток! Хочу попросить Вас о помощи. Я только начинаю разбираться в Maxsite

    CMS и никак не могу найти как изменить иконку "Рубрик". Хочу вместо стандартной иконки флажка поставить что то другое, так как у Вас.

    Подскажите, пожалуйста, как это сделать или хотя бы где искать. Заранее спасибо!

  6. 2017-11-09 в 11:45:04 | dre@mer]]>avatar]]>

    Дмитрий, тут всё просто. Каждой из рубрик, присвоен свой уникальный класс (например у списка категории .category_widget, у облака тегов .tagclouds_widget и так далее). Потому в CSS файле я просто переопределил выводимые иконки. Можете сами посмотреть, заглянув в код странички.

    Кроме того был переделан вывод заголовков, вот тут несколько сложнее, так как для этого нужно править файл шаблона functions.php. Я писал об этом, буквально на днях: о поиске файлов, содержащих определнный текст

  7. 2017-12-26 в 10:47:19 | Константин

    Помогите, пожалуйста! Мучаюсь с https. Хостинг Таймвеб, там уже включена https бегунком, т.е. htaccess

    править не нужно.

    Что я сделал:

    1. Скачал дамп базы, все http переименовал в https, потом снова залил базу.

    2. У меня файл только так /application/config/mso_config.php-distr. Переименовал в mso_config.php, после чего сразу ошибка:

    A PHP Error was encountered

    Severity: Warning

    Message: Cannot modify header information - headers already sent by (output started at /home/u/user/userqwe/public_html/blog/application/config/mso_config.php:2)

    Filename: libraries/Session.php

    Line Number: 689

    3. При добавлении "секретного содержимого" в /application/config/mso_config.php стили восстанавливаются, но, по-прежнему маячит ошибка из п. №2.

    Ну и в админку не пускает...

    Может БД не нужно было переименовывать ?

  8. 2017-12-26 в 18:10:47 | dre@mer]]>avatar]]>

    У меня хостинг тоже timeweb, как видите всё работает. Какая у вас версия Maxsite и какая версия php сейчас используется на хостинге для сайта?

    А так проблема указывается с файлом libraries/Session.php. Кэш не забыли почистить?

  9. 2017-12-26 в 20:48:28 | Константин

    Немного прояснилась ситуация, кеш не прием.

    Таймвеб, бегунок https и с www на без www, php 5.6, версия Maxsite последняя - 0,98.

    Скачиваю базу, меняю все ссылки на https. В админку пускает, стили не работают, шаблон "плывет". Открываю отладчик, смотрю секцию head, там по-прежнему все стили с http. Стоит подставить "s", все начинает работать как надо.

    Если в хтачес прописываю правила, внешний вид не меняется, в админку не пускает.

    Если прописать "секретное содержимое", то ловлю следующее:

    A PHP Error was encountered

    Severity: Warning

    Message: Cannot modify header information - headers already sent by (output started at /home/u/user/userqwe/public_html/blog/application/config/mso_config.php:2)

    Filename: libraries/Session.php

    Line Number: 689

    В моем случае хтачес править не нужно, "секретное содержимое" прописывать тоже. Нужно только где-то подправить пути к стилям. Но где, я не знаю...

    все-таки странная cms, но альтернативы не вижу :(

    Спасибо за помощь!

  10. 2017-12-26 в 20:56:55 | Константин

    Все, победил!

    Очистил mso_config.php, добавил теги . Хтачес не трогал, вроде все работает. БД менял все ссылки на https. Дело как раз в тегах

  11. 2017-12-26 в 21:51:23 | dre@mer]]>avatar]]>

    Поздравляю :) Ваша версия CMS гораздо свежее моей, я так и остался на 0.74, хотя ради эксперимента полностью обновил до последней и адаптировал под неё шаблон. Но у меня ещё своя, эксклюзивная тема админки, в которой меня всё устраивает и радует глаз, потому не хотелось заморачиваться ещё и с её переделкой. Просто нет на это времени. В дальнейшем, всё равно собираюсь перебираться на другой движок, в MaxSite для меня стало много ограничений и не вижу перспектив что что-то поменяется в лучшую сторону.

  12. 2017-12-27 в 11:43:56 | Константин

    dre@mer, спасибо!

    Ваша статья актуальна для всех версий Maxsite. Нужно в хтачесс прописать редиректы и в mso_config.php "секретное содержимое". Только нужно mso_config.php очистить полностью, а "секретное содержимое" заключить в теги php.

    В какую сторону смотрите? У меня вся проблема в комментариях. Вот бы парсер какой-нибудь - из БД Maxsite перевести комментарии в Дискус. Тогда бы попрощался с Maxsite :)

  13. 2017-12-27 в 13:13:23 | dre@mer]]>avatar]]>

    Парсер я недавно писал, только наоборот загонял из hypercomments в maxsite. Для пробы пару лет стояло сразу две системы комментариев.

    Вот куда переходить, пока в раздумьях. Мне ближе всего ModX, но останавливает то что нет нормального процессора, который будет теги расставлять - Jevix который там продвигают, вернее его php версия, давно заброшена разработчиком.

  14. 2018-03-12 в 20:07:45 | Сергей

    Добрый вечер! С недавнего времени, а точнее с конца 2017 года являюсь подписчиком вашего блога. Давно было интересно, сколько приносит в месяц примерно такой блог? Недавно тоже сделал себе блог на maxsite cms на компьютерную тематику, вот просто интересно... И еще вопрос - как поисковые системы относятся к maxsite? вордпрес как я понял они "любят" а с максайтом были ли какие нибудь проблемы в плане оптимизации и индексации или продвижения? Знаю по посту на вашем блоге что проблемы были с https, этот пост помог мне настроит SSL сертификат. Спасибо. Лично мне вордпрес очень не нравится. На максе все как то проще.

  15. 2018-03-12 в 20:12:49 | dre@mer]]>avatar]]>

    Спасибо, что читаете. Блог особых денег не приносит - это для души, так интернет окупить и связь. Чтобы приносило хоть какую-то ощутимую прибыль, нужно писать постоянно и регулярно, а у меня на это времени не хватает. Поисковикам, на мой взгляд, всё равно какой движок. Wordpress несколько тяжеловат, но и от maxsite я не в восторге - лучшее что удалось найти на тот момент, так что пока живу на нём.

  16. 2018-03-14 в 10:06:53 | Владимир

    Добрый день! Если будете переезжать, то на какой движок? Какой по вашему мнению движок заслуживает внимания по сравнению с maxsite cms?

  17. 2018-03-14 в 10:23:58 | dre@mer]]>avatar]]>

    Склоняюсь в сторону MODX Revolution, но это пока не точно, есть там некоторые моменты которые смущают.

  18. 2018-09-19 в 13:54:34 | Аноним

    А где замочек то зеленый?

ваш комментарий будет опубликован после проверки
на указанный адрес будет отправлено письмо с кодом активации. Вы можете настроить собственный профиль и стать активным участником или автором.