Как убрать ошибки microformats

Как убрать ошибки microformats.org? Очень просто! Открываем любую страницу блога и нажимаем сочетание клавиш Ctrl+U для просмотра исходного кода страницы. В Internet Explorer проще воспользоваться контекстным меню и выбрать «Просмотр HTML-кода», если он недоступен, то смотрим статью про разблокировку просмотра кода HTML. Нажимаем Ctrl+F, появляется строка поиска в исходном коде, забиваем туда слово «hentry», оказывается, что оно входит в тег «article». 

Читать далее«Как убрать ошибки microformats»

Минификация кода для популярных CMS

Что такое минификация? Это процесс, при котором уменьшается исходный код сайта на выходе за счет удаления лишних пробелов, переводов строк, комментариев и прочих ненужных элементов. При этом функциональность сайта не теряется.
Если говорить еще проще – мы делаем html-файл в одну строку.
Для чего это требуется? Таким образом мы удаляем мусор и уменьшаем вес html-страницы, тем самым в какой-то степени ускоряем загрузку сайта.Читать далее«Минификация кода для популярных CMS»

Рейтинг в сниппете

Для того чтобы в сниппете появились рейтинговые звездочки типо отзывов и голосовалок от пользователей, необходимо добавить в тело шаблона в BODY код по правилам SCHEMA.org. Код будет выглядеть следующим образом:Читать далее«Рейтинг в сниппете»

SSL для MODx

Настроить корректную работу SSL достаточно просто, настройка только одна. Для начала предполагается что SSL сертификат уже получен и успешно внедрен, далее задача стоит — сделать сайт успешно доступным по протоколу HTTPS. Заходим в «Системные настройки» — переходим в веткуСистемаи сервер, находим тип сервера и меняем протокол на https
Читать далее«SSL для MODx»

301 редирект в NGINX

Обычно проблема 301 редиректа возникает когда у вас не обычный хостинг, а VPS. То соответственно следует залезать в конфиг ядра и прописывать соответствующие директивы ибо работать через обычный .htaccess не будут.

Редирект без-www на с-www

server {
server_name domainname.com;
rewrite ^/(.*)$ http://www.domain.com/$1 permanent;
}

Редирект с-www на без-www

server {
server_name www.domainname.com;
rewrite ^/(.*)$ http://domain.com/$1 permanent;
}

Новые и лучшие метода для nginx
Читать далее«301 редирект в NGINX»

Антилич система

Антилич (от leech — «пиявка») это система, которая не позволит скачать ваш файл по ссылке на странице с другого сайта. Часто, если ваш файл популярен, недобросовестные ВЕБ-мастера могут поставить у себя прямую ссылку на него, не упоминая о вашем сайте.

Если вы заботитесь о популярности ВАШЕГО, а не чужого сайта — установите антилич систему. Антилич уже встроен в компонент файлового архива DocMan. Статья о компоненте DocMan.
Читать далее«Антилич система»

Как перенести сайт на Simpla CMS на другой хостинг?

Столкнулся на днях с небольшой проблемой по переносе сайта на Simpla на другой хостинг. По сути ничего сложного, принцип переноса как и везде одинаков за исключением некоторых простых тонкостей. И так, а теперь по сабжу: Сначала идем в конфигconfig/config.phpпрописываем настройки на подключение к базе данных. И после этого не забыть очистить кэш сайта, т.е. содержимое некоторых папок:/compliledи/simpla/design/compiled. Далее прописать новый абсолютный пусть для.passwdв.htaccessвнутри папкиsimpla.

Как перейти на HTTP/2

Для того чтобы перейти на протокол HTTP/2 сперва нужно иметь SSL сертификат, грамотно его подключить и настроить, чтобы не было конфликтов со смешанным контентом. После этого начинаем разбираться Что за сервер у нас стоит: Apache или NGINX. Очень важно определить версию сервера, так как HTTP/2 будет корректно работать на наиболее свежих версиях.
Читать далее«Как перейти на HTTP/2»

Конвертируем картинки в WEBP

Формат изображений webp набирает за последнее время небывалую популярность. Проводили эксперименты на тему как эффективней осуществлять замену обычных JPG, PNG на WEBP. И я пришел к выводу, что наилучший вариант — это прописать соответствующую директиву в файл .htaccess


RewriteEngine On

Читать далее«Конвертируем картинки в WEBP»

301 редирект для MODx

создать 301 редирект между внутренними страницами для Revolution можно самым простым способом — установив плагинRedirectorчерез Приложения->Установщик в поиск вбиваем Redirector и нажимаем клавишу энтер, тыкаем на установку и обновляя страницу наблюдам его во вкладке Приложения. Далее заходим и в шаблон вписываем не нужный URL, а в Цель вписываем нужный URL и обе ссылки должны быть без http: и корневого каталога со слэшем на конце, т.е.http://sait.ru/page1
Читать далее«301 редирект для MODx»

Как снизить нагрузку на CPU хостинга?

Привет всем! И так, Ваш сайт начали атаковать боты, неизвестные айпи-адреса, у вас стала зашкаливать нагрузка на сервер? Не спешите покупать более дорогой тарифный план с наибольшим порогом нагрузки. Сейчас я расскажу, что можно в данном случае сделать собственными руками.
Читать далее«Как снизить нагрузку на CPU хостинга?»

Как указать заголовок Vary: Accept-Encoding?

Что делать, если Google PageSpeed Настоятельно просит: Укажите заголовок Vary: Accept-Encoding?

Заголовок Vary Accept-Encoding Сообщает прокси-серверам, что нужно кэшировать обе версии ресурса: сжатую и несжатую. Это помогает избежать проблем при работе с общедоступными прокси-серверами, которые не распознают наличие заголовка Content-Encoding.
Для того, чтобы удовлетворить желания Гугла, необходимо в конфигурационные файлы добавить следующий код:
Читать далее«Как указать заголовок Vary: Accept-Encoding?»

Кэширование и gzip сжатие в NGINX

Ищем файл /etc/nginx/nginx.conf внутрь которого вносим необходимые изменения.

B секциюhttp {ищем и добавляем недостающее:

gzip_static on;
gzip_comp_level 5;
gzip_buffers 64 8k;
gzip_min_length 1024;
gzip_proxied any;
gzip_types text/plain application/xml application/x-javascript text/javascript text/css text/json;
expires max;

И в секциюserver {ищем и добавляемexpires 14d; в конструкцию:

server_name site.ru www.site.ru;
listen 111.121.152.21;
disable_symlinks if_not_owner from=$root_path;
set $root_path /var/www/user/data/www/site.ru;
location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ {
root $root_path;
expires 14d;
access_log /var/www/nginx-logs/user isp;
access_log /var/www/httpd-logs/site.ru.access.log ;
error_page 404 = @fallback;
}

Как кэшировать внешние скрипты?

Для начала открываем Google Page Speed и прогоняем главную страницу сайта, нас интересуют внешние подгружаемые JavaScript. Это обычно Яндекс Метрика, Гугл Аналитика, шрифты какие-нибудь, и коллбэк виджеты. Все эти скрипты на которые ругается Гугл копируем (URL) и вставляем в предварительно подготовленный нами РНР-скрипт который я назвал rz-download.php.
Читать далее«Как кэшировать внешние скрипты?»

Как найти файл подключения к БД в CMS

Где находится конфигурационный файл подключения к базам данных в популярных CMS

ВJoomlaесть файл configuration.php, в котором есть строчки:

var $host = 'сервер';
var $user = 'имя_пользователя';
var $db = 'имя_базы_данных';
var $password = 'пароль';

ВWordPressесть файл wp-config.php, в котором есть строчки:

define('DB_NAME', 'имя_базы_данных');
define('DB_USER', 'имя_пользователя');
define('DB_HOST', 'сервер');
define('DB_PASSWORD', 'пароль');

ВDrupalв папке /site/default/ есть файл settings.php, в котором есть строчка $db_url = ‘mysql://username:password@mysqlhost/databasename’; Где:

username - имя пользователя;
password - пароль;
mysqlhost - сервер базы данных;
databasename - имя базы данных.

ВDLEв папке /engine/data/ есть файл dbconfig.php, в котором подключение к базе прописывается в строчках:

define ("DBHOST", "сервер");
define ("DBNAME", "имя_базы_данных");
define ("DBUSER", "имя_пользователя");
define ("DBPASS", "пароль");

ВShop-scriptподключение настраивается в файле /cfg/connect.inc.php

define('DB_HOST', 'сервер');
define('DB_USER', 'имя_пользователя');
define('DB_PASS', 'пароль');
define('DB_NAME', 'имя_базы_данных');

ВShopCMSбаза данных подключается в файле /core/config/connect.inc.php

define('DB_HOST', 'сервер');
define('DB_USER', 'имя_пользователя');
define('DB_PASS', 'пароль');
define('DB_NAME', 'имя_базы_данных');

ВWebAsystвсё немного сложнее. Там есть файл /dblist/логин.xml в котором за соединение с базой отвечают следующие параметры:

SQLSERVER="сервер"
DB_NAME="имя_базы_данных"
DB_PASSWORD="пароль"
DB_USER="имя_пользователя"

а также в файле кеша /temp/scdb/.settings.логин дублируются эти же параметры:

"DB_USER" "имя_пользователя"
"DB_PASS" "пароль"
"DB_NAME" "имя_базы_данных"
"DB_HOST" "сервер"

ВPrestaShopподключение настраивается в файле /config/settings.inc.php

define('_DB_NAME_', 'имя_базы_данных');
define('_DB_SERVER_', 'сервер');
define('_DB_USER_', 'имя_пользователя');
define('_DB_PASSWD_', 'пароль');

ВMODxподключение настраивается в файле /manager/includes/config.inc.php:

$database_server = 'сервер';
$database_user = 'имя_пользователя';
$database_password = 'пароль';
$dbase = 'имя_базы_данных’;

ВBitrixподключение настраивается в файле /bitrix/php_interface/dbconn.php:

$DBHost = "сервер";
$DBLogin = "имя_пользователя";
$DBPassword = "пароль";
$DBName = "имя_базы_данных";

ВPHPShopподключение настраивается в файле phpshop/inc/config.ini:

host = "сервер";
user_db = "имя_пользователя";
pass_db = "пароль";
dbase = "имя_базы_данных";

ВHostCMSконфигурационный файл размещается в modules/core/config/database.php и содержит следующие настройки:

'driver' => 'mysql',
'host' => 'localhost',
'username' => 'srv83user',
'password' => 'megapassword',
'database' => 'hostcms'

ВUMIреквизиты подключения в секции [connections] файла docs/config.ini: Код:

core.host = "адрес_сервера"
core.login = "имя_пользователя"
core.password = "пароль"
core.dbname = "имя_базы_данных"

ВphpBBфайле docs/config.php:

$dbhost = 'адрес_сервера';
$dbname = 'имя_базы_данных';
$dbuser = 'имя_пользователя';
$dbpasswd = 'пароль';

ВNetCatсоединение с базой данных настраивается в файле docs/vars.inc.php:

$MYSQL_HOST = "адрес_сервера";
$MYSQL_USER = "имя_пользователя";
$MYSQL_PASSWORD = "пароль";
$MYSQL_DB_NAME = "имя_базы_данных";

ВAmiro.CMSнастройки соединения с базой данных устанавливаются в файле docs/_local/config.ini.php:

DB_Host = "адрес_сервера"
DB_Database = "имя_базы_данных"
DB_User = "имя_пользователя"
DB_Password = "пароль"