Переезд на HTTPS и снова пригорает от проблем с MaxSite CMS
Заметили сегодня замочек в адресной строке? Это не просто так - в блоге, наконец, начались масштабные изменения, и какое-то время его будет не хило колбасить в поисковой выдаче. Но, обо всём по порядку...
Процесс полного преобразования блога я решил разбить на два этапа - в начале, навести, хоть какое-то, подобие порядка, исправив глобальные косяки, и только после этого заниматься новым движком и дизайном. За выходные удалось побороть проблему с каноническими 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, если верить Яндексу, займет от двух недель до месяца, а то двух. Хотя большая часть вебмастеров и жалуется на просадку, но я верю в лучшее. В любом случае это новый опыт и будет интересно понаблюдать.
Комментариев: 19
Все понятно, по вашей статье тоже переехал на HTTPS большое спасибо! Подскажите в sitemap.xml у вас тоже ссылки с https как мне настроить? у меня тоже maxsite) и если есть еще что то кроме sitemap может расскажете? например теперь ссылки на главной странице в админке у меня стали с https (я имею ссылки на сайт разработчика, гитхаби т.д) И проверка последней версии cms так же перестала работать из за переезда
Хотя в самом php файле ссылки указаны вада - //mysite.ru/page
Надо же быть таким невнимательным) Настройка карты сайта была на уровне плагина))
Добрый вечер Сергей. Если вы прочитали весь пост, а скорее всего так и есть, то заметили что я не собираюсь в дальнейшем оставаться на MaxSite, просто вопрос переезда на новый движок довольно не простой и требует серьёзной работы и свободного времени. В sitemap.xml естественно тоже меняются ссылки на https. Сегодня размещу один интересный материальчик от Яндекса с прошлогоднего семинара для web-разработчиков, посмотрите, многие вопросы снимутся. Сам только сегодня об этом узнал. Будут вопросы - задавайте, что знаю расскажу.
Доброе время суток! Хочу попросить Вас о помощи. Я только начинаю разбираться в Maxsite
CMS и никак не могу найти как изменить иконку "Рубрик". Хочу вместо стандартной иконки флажка поставить что то другое, так как у Вас.
Подскажите, пожалуйста, как это сделать или хотя бы где искать. Заранее спасибо!
Дмитрий, тут всё просто. Каждой из рубрик, присвоен свой уникальный класс (например у списка категории .category_widget, у облака тегов .tagclouds_widget и так далее). Потому в CSS файле я просто переопределил выводимые иконки. Можете сами посмотреть, заглянув в код странички.
Кроме того был переделан вывод заголовков, вот тут несколько сложнее, так как для этого нужно править файл шаблона functions.php. Я писал об этом, буквально на днях: о поиске файлов, содержащих определнный текст
Помогите, пожалуйста! Мучаюсь с 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.
Ну и в админку не пускает...
Может БД не нужно было переименовывать ?
У меня хостинг тоже timeweb, как видите всё работает. Какая у вас версия Maxsite и какая версия php сейчас используется на хостинге для сайта?
А так проблема указывается с файлом libraries/Session.php. Кэш не забыли почистить?
Немного прояснилась ситуация, кеш не прием.
Таймвеб, бегунок 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, но альтернативы не вижу :(
Спасибо за помощь!
Все, победил!
Очистил mso_config.php, добавил теги . Хтачес не трогал, вроде все работает. БД менял все ссылки на https. Дело как раз в тегах
Поздравляю :) Ваша версия CMS гораздо свежее моей, я так и остался на 0.74, хотя ради эксперимента полностью обновил до последней и адаптировал под неё шаблон. Но у меня ещё своя, эксклюзивная тема админки, в которой меня всё устраивает и радует глаз, потому не хотелось заморачиваться ещё и с её переделкой. Просто нет на это времени. В дальнейшем, всё равно собираюсь перебираться на другой движок, в MaxSite для меня стало много ограничений и не вижу перспектив что что-то поменяется в лучшую сторону.
dre@mer, спасибо!
Ваша статья актуальна для всех версий Maxsite. Нужно в хтачесс прописать редиректы и в mso_config.php "секретное содержимое". Только нужно mso_config.php очистить полностью, а "секретное содержимое" заключить в теги php.
В какую сторону смотрите? У меня вся проблема в комментариях. Вот бы парсер какой-нибудь - из БД Maxsite перевести комментарии в Дискус. Тогда бы попрощался с Maxsite :)
Парсер я недавно писал, только наоборот загонял из hypercomments в maxsite. Для пробы пару лет стояло сразу две системы комментариев.
Вот куда переходить, пока в раздумьях. Мне ближе всего ModX, но останавливает то что нет нормального процессора, который будет теги расставлять - Jevix который там продвигают, вернее его php версия, давно заброшена разработчиком.
Добрый вечер! С недавнего времени, а точнее с конца 2017 года являюсь подписчиком вашего блога. Давно было интересно, сколько приносит в месяц примерно такой блог? Недавно тоже сделал себе блог на maxsite cms на компьютерную тематику, вот просто интересно... И еще вопрос - как поисковые системы относятся к maxsite? вордпрес как я понял они "любят" а с максайтом были ли какие нибудь проблемы в плане оптимизации и индексации или продвижения? Знаю по посту на вашем блоге что проблемы были с https, этот пост помог мне настроит SSL сертификат. Спасибо. Лично мне вордпрес очень не нравится. На максе все как то проще.
Спасибо, что читаете. Блог особых денег не приносит - это для души, так интернет окупить и связь. Чтобы приносило хоть какую-то ощутимую прибыль, нужно писать постоянно и регулярно, а у меня на это времени не хватает. Поисковикам, на мой взгляд, всё равно какой движок. Wordpress несколько тяжеловат, но и от maxsite я не в восторге - лучшее что удалось найти на тот момент, так что пока живу на нём.
Добрый день! Если будете переезжать, то на какой движок? Какой по вашему мнению движок заслуживает внимания по сравнению с maxsite cms?
Склоняюсь в сторону MODX Revolution, но это пока не точно, есть там некоторые моменты которые смущают.
А где замочек то зеленый?
Долго мучался с редиректом, пока не пришла в голову идея жестко прописать в конфиге https для всех ссылок. Жаль, что слишком поздно.