Перед тем, как предпринимать какие-либо шаги создайте резервные копии файлов и базы данных. Плагин интеграции с CDN предназначен только для сайтов работающих по стандартным шаблонам CMS. Если вы вносили изменения в логику работы CMS, плагин может не cработать.
Предположим, что вы используете:
CDN-домен для HTTP запросов: static.example.ru. Проверьте работает ли ваш CDN-домен, прежде чем использовать ее для интеграции.
CDN-домен для HTTPS запросов: example.r.worldssl.net (бесплатный SSL-сертификат)
X-Cart 4.4.x и позднее - постоянный путь к контенту (статике)
Откройте файл smarty.php в корневом каталоге X-Cart
Замените строки:
$smarty->assign('ImagesDir', $xcart_web_dir . $smarty_skin_dir . '/images'); $smarty->assign('SkinDir', $xcart_web_dir . $smarty_skin_dir);
На следующие строки:
if ($_SERVER['HTTPS'] != 'on') { $smarty->assign("SkinDir","http://static.example.ru/skin/ideal_comfort"); $smarty->assign("ImagesDir","http://static.example.ru/skin/ideal_comfort/images"); } else { $smarty->assign("SkinDir","https://example.r.worldssl.net/skin/ideal_comfort"); $smarty->assign("ImagesDir","https://example.r.worldssl.net/skin/ideal_comfort/images"); }
X-Cart 4.4.x и позднее - динамический путь к контенту (статике)
Откройте файл smarty.php в корневом каталоге X-Cart
Замените строки:
$smarty->assign('ImagesDir', $xcart_web_dir . $smarty_skin_dir . '/images'); $smarty->assign('SkinDir', $xcart_web_dir . $smarty_skin_dir);
На следующие строки:
if ($_SERVER['HTTPS'] != 'on') { $smarty->assign('ImagesDir', "http://static.example.ru" . $smarty_skin_dir . '/images'); $smarty->assign('SkinDir', "http://static.example.ru" . $smarty_skin_dir); } else { $smarty->assign('ImagesDir', "https://example.r.worldssl.net" . $smarty_skin_dir . '/images'); $smarty->assign('SkinDir', "https://example.r.worldssl.net" . $smarty_skin_dir); }
Откройте файл /include/templater/plugins/function.load_defer_code.php.
Замените строку:
$cacheWebFile = $var_dirs_web['cache'] . '/' . $label . '.' . $md5Suffix . '.' . $type;
На следующие строки:
if ($_SERVER['HTTPS'] != 'on') { $cacheWebFile = "http://static.example.ru/var/cache" . '/' . $label . '.' . $md5Suffix . '.' . $type; } else { $cacheWebFile = "https://example.r.worldssl.net/var/cache" . '/' . $label . '.' . $md5Suffix . '.' . $type; }
Откройте файл /include/func/func.files.php.
Найдите (не заменяйте) строку:
global $config, $sql_tbl, $xcart_dir, $current_location;
И добавьте (не заменяйте) следующие строки:
if ($HTTPS) $current_location = 'https://example.r.worldssl.net'; else $current_location = 'http://static.example.ru';
Откройте файл /include/templater/plugins/function.get_category_image_url.php.
Замените строку:
return func_convert_amp(func_get_image_url($category['categoryid'], 'C', $category['image_path']));
На следующие строки:
return return str_replace("domain.com ","static.example.ru",func_convert_amp(func_get_image_url($category['categoryid'], 'C', $category['image_path'])));
Откройте файл /skin/common_files/modules/Banner_System/banner_rotator.tpl.
Замените строку:
src="{$content.image_path|amp}"
На следующую строку:
src="{$content.image_path|amp|replace:'domain.com':'static.example.ru'}"
Интеграция с CDN завершена! Рекомендуем проверить html-код сайта, чтобы убедиться, что URL-адреса были верно изменены.
Для этого нажмите F12 или откройте «Инструменты разработчика», перейдите на вкладку Network, обновите страницу. В ссылках на статические файлы, вы должны увидеть CNAME-запись из личного кабинета, вместо вашего доменного имени.