Перейти к содержанию

Лидеры

  1. mpn2005

    mpn2005

    Разработчик


    • Баллы

      4

    • Постов

      566


  2. DEVAGENCY

    DEVAGENCY

    Фрилансер


    • Баллы

      3

    • Постов

      120


  3. byba

    byba

    Пользователь


    • Баллы

      1

    • Постов

      75


  4. AlexDW

    AlexDW

    Разработчик


    • Баллы

      1

    • Постов

      588


Популярный контент

Показан контент с высокой репутацией 02.07.2022 во всех областях

  1. Веб сервер nginx позволяет работать в разных режимах, как с использованием интерпретатора php, так и без. Для работы OpenCart лучше выбирать оптимальный режим работы php-fpm. Многих данный режим пугает тем, что в данном случае файл htaccess напрочь игнорируется и все необходимые настройки нужно вносить в конфиг nginx. Но в этом нет ничего сверх сложного. Конфигурационный файл - это обычный текстовый файл на сервере, который подчиняется определённым правилам. И по данному поводу можно найти много готовых описаний и инструкций. Данная статья не претендует на уникальность, а просто представляет краткую выжимку по настройкам, учитывая особенности работы с движком OpenCart и сборками на его основе. Для удобства будут приводится примеры настройки с использованием панели ISPmanager. Основные настройки будут касаться секции location, и зависимость описания от используемой панели будет минимальной. Для начала переведём nginx в режим работы php-fpm. Для этого в панели сделаем следующие настройки разделе WWW-домены для нужного сайта: 1. Выбираем в списке нужный сайт, если их несколько, и жмём кнопку "Изменить". 2. Находим настройки PHP и настраиваем следующим образом: Обратите внимание, что версия php у вас может отличаться. При необходимости, можно эту версию изменить на нужную, но этот вопрос выходит за рамки данной статьи. После сохранения настроек будет работать почти всё, что и раньше. Если в настройках OpenCart отключены ЧПУ ссылки, то всё будет работать, как и работало до переключения режима работы. Теперь можно приступать к непосредственной настройке самого конфигурационного файла nginx для текущего сайта. Для этого в списке www доменов находим нужный нам и нажимаем справа на иконку с тремя точками. В выпадающем меню выбираем пункт "Конфиг": Вот примерный конфигурационный файл, который будет создан у вас по умолчанию: В конфигурации у вас будет две секции server, если у вас включено защищённое соединение SSL (и оно должно быть обязательно включено). Если у вас включен принудительный редирект с http на https, то можно редактировать только секцию server для https. Определить её легко: в самом начале есть параметр с указанием сертификата ssl_certificate. Также в этой секции указан параметр listen с указанием порта 443: listen 8.8.8.8:443 ssl Но лучше делать настройки сразу в двух секциях server, чтобы не допустить механической ошибки. На данный момент нас интересует вот эта часть конфигурационного файла: location / { location ~ [^/]\.ph(p\d*|tml)$ { try_files /does_not_exists @php; } location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ { expires 365d; } } Все дальнейшие изменения мы будем вносить внутри этой секции "location /". В первую очередь нам не хватает вот такой директивы: if (!-e $request_filename){ rewrite ^/(.+)$ /index.php?_route_=$1 last; } Данное условие очень простое: если сервер не может найти файл по указанному в запросе пути, то запрос будет переписан на вызов index.php, а в параметр _route_ будет передан запрашиваемый путь. Именно это и позволит корректно отрабатывать всем ЧПУ ссылкам движка. Это правило является аналогом записи в файле htaccess: RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA] На этом можно было бы и закончить, но стоит внести ещё некоторые изменения для улучшения безопасности. Рассмотрим более внимательно вот эту секцию: location ~ [^/]\.ph(p\d*|tml)$ { Тут отбираются все все подходящие динамические файлы с типами .php (в том числе с числами в окончании) и .phtml Но у движка OpenCart в штатном режиме есть всего две точки входа для вызова php файлов через web окружение - это index.php и admin/index.php Есть ещё install/index.php, но она используется только при установке движка. Учитывая данные обстоятельства, логично запретить прямое выполнение всех остальных php скриптов через web окружение, кроме указанных администратором. Сделать это можно следующим образом: location ~ ^/(index|admin/index|install/index)\.php { try_files /does_not_exists @php; } В скобках через разделитель "|" указываем все php скрипты, которые можно выполнять. После завершения установки можно будет сократить это список до такого: (index|admin/index) ВНИМАНИЕ!!! Очень важный момент! После того, как убрали вызов интерпретатора php для всех файлов, кроме указанных, при попытке запроса любого другого php файла он будет отдан как обычный текстовый файл. И при запросе https://test.ru/config.php любой желающий сможет получить содержимое вашего конфигурационного файла, где содержится доступ к БД. Поэтому нам обязательно нужно запретить доступ для всех остальных файлов с расширением php. Ну и заодно к другим типам файлов, которые не стоит отдавать по запросу извне. Сделать это можно простым правилом: location ~* \.(php|log|tpl|txt|twig|xml|ini)$ { deny all; } В скобках через разделитель "|" указываем все расширения файлов, которые мы хотим запретить. Но у нас есть несколько важных файлов, которые пока попали под запрет, например: robots.txt и sitemap.xml. Этот вопрос мы решим чуть позже. А сейчас ещё немного запретов. Запретим открывать файлы, которые начинаются с точки, а также все файлы в папке system: location ~ /\. { deny all; } location ~ ^/system/ { deny all; } Этих запретов вполне достаточно, чтобы сделать невозможным выполнение каких-либо несанкционированных скриптов. А также просмотр логов, текстовых и xml файлов. Теперь нам необходимо открыть доступ к файлу robots.txt, для этого нам нужно такое правило: location = /robots.txt { allow all; } Также пропишем разрешение на открытие sitemap.xml и rewrite правило: location = /sitemap.xml { allow all; rewrite ^/(.*)$ /index.php?route=extension/feed/google_sitemap last; } Если вы используете сторонний модуль сайтмапа, то нужно указать соответствующий route для данного модуля. Если у вас несколько файлов sitemap или вы используете фиды для выгрузки данных, то просто пропишите для них права по аналогии. В итоге мы должны получить вот такую секцию location: Этих настроек достаточно для корректной работы движка OpenCart. И при этом данная конфигурация является безопасной с точки зрения выполнения несанкционированных скриптов php через web окружение. После всех настроек обязательно проверьте правильность работы, сделав запросы по указанному чек-листу (test.ru замените на адрес вашего сайта): https://test.ru/config.php https://test.ru/admin/config.php https://test.ru/admin/1.php https://test.ru/admin/1.txt https://test.ru/admin/1.log https://test.ru/admin/1.xml https://test.ru/system/modification.xml Для всех этих ссылок вы должны получить ошибку "403 Forbidden", вне зависимости от того, есть файл по указанному пути на сервере, или нет. Также проверяем белый список: https://test.ru/robots.txt https://test.ru/sitemap.xml Эти файлы не должны вызывать ошибок и вы должны корректно получать их содержимое. Дополнительно стоит проверить все ваши дополнительные сайтмапы или фиды, если вы их добавляли. Ещё раз повторюсь, что данная настройка является базовой, с небольшими правилами для улучшения безопасности. Но даже уже при такой настройке вы в среднем получите выигрыш 100-200ms для параметра TTFB, по сравнению с остальными режимами работы.
    1 балл
  2. Версия 1.3.2

    10 раз скачали

    Описание Модуль позволяет выбирать свой tpl / twig шаблон для выбранных товаров / категорий / производителей / товаров выбранной категории / товаров определенного производителя / информационной страницы и т.д. Например, модуль может подменить шаблон product/product.twig на product/product_showcase.twig для товаров производителя Apple. Возможности Доступна подмена шаблонов для: Товара Категории Производителя Информационной страницы Товаров в выбранной категории Товаров выбранного производителя Схемы * Можно назначить тот или иной шаблон для вышеуказанных страниц в зависимости от группы пользователя, языка, магазина * Работает в разделах товаров, категорий, производителей, информационных страниц. Чтобы добавить поддержку шаблонов для схем в другие нестандартные разделы, посмотрите vqmod / ocmod файл, сделайте по аналогии с checkout/cart (дублируйте и исправьте пути, выберите схему страницы). Если будут трудности, обращайтесь. Совместимость OpenCart / OcStore 1.5, 2.x, 3.x версий. Зависимости Для версий 1.5.x необходим vqmod. Для версий 2.x, 3.x необходим ocmod. Демо Админка https://custom-template.shth.me/admin/ (авто вход) Каталог https://custom-template.shth.me/component/monitor/apple_cinema_30 https://custom-template.shth.me/camera/canon-eos-5d https://custom-template.shth.me/laptop-notebook/windows https://custom-template.shth.me/privacy https://custom-template.shth.me/apple https://custom-template.shth.me/desktops/mac/imac На демо сайте есть верхнее меню для быстрой навигации. Установка Установите модуль через стандартный раздел установки дополнений. В разделе модулей установите "Персонализованные шаблоны". Руководство Модификаторы Будьте внимательны к модификаторам. Использование модификаторов влияет на содержимое подменяемых tpl / twig файлов. Если вы хотите, чтобы новые файлы были аналогичны подменяемым, необходимо добавить поддержку новых файлов в модификаторы. Например, мы хотим подменить файл product.twig на product_showcase.twig. Для этого нужно найти все модификаторы, которые вносят изменения в файл product.twig и добавить в них поддержку product_showcase.twig. Список модификаторов, которые изменяют тот или иной файл и внести нужные изменения можно посмотреть с помощью моего скрипта "Modification editor". Если возникнут любые вопросы, пишите в тему поддержки или личные сообщения. Лицензия Модуль имеет автоматическую активацию. При покупке указывайте домен / тестовый домен. Лицензия распространяется на один магазин / мультимагазин. Описание файлов и контрольные суммы custom_template_v1.3.2_oc_v1.5.zip для версий 1.5 4dc09c095283ae5fa7f3ccb45a2231d2 custom_template_v1.3.2_oc_v2.x.ocmod.zip для версий 2.x, младше 2.2 fca84cc9eaa0eead1a0288acf9d3467e custom_template_v1.3.2_oc_v2.2.ocmod.zip для версий 2.2 05ec25b1e0c2f2580c791c185afd6376 custom_template_v1.3.2_oc_v2.3.ocmod.zip для версий 2.3 8bc5146952db7d6d6eac939848584302 custom_template_v1.3.2_oc_v3.x.ocmod.zip для версий 3.x 1bc067a414ecb26bf10a47bcaeb240ec Смотрите также Custom templates Pro - модуль подменяющий tpl / twig шаблоны у любых разделов и модулей в зависимости от условий. Расширенные схемы - расширяет функционал стандартного механизма схем, позволяет управлять видимостью модулей в зависимости от условий. Связанные HTML блоки - модуль позволяет создавать неограниченное количество HTML блоков (HTML контент) и привязывать их к категориям / товарам / производителям. Другие модули и услуги с тегом "Гибкость". Лог изменений
    400 ₽
    1 балл
  3. По хорошему надо на все странички нагенерить метатеги тайтлы, дескрипшены, и кейворды. Ибо сейчас с точки зрения поисковиков сайт является "Говносайтом" контента мало, большинство контента не уникально , а мысли и побуждения ни гугл ни яндекс пока еще не умеют учитывать, им необходимо все декларировать. Конечно если бы был бездонный бюджет, можно было бы заказать рекламу в яндексе и гугле , но это кормить маркетантов (даже не разработчиков) этих самых поисковиков. Я сегодня искал в поиске батчэдитор , с указанием опенкарта, в топ 10 клуба не увидел. Но надо отдать должное поле уточнения "Опенкарт клуб" на 7й или 8 позиции нашел. Это при учете, что персонализация поиска не была отключена, и я уже не раз посещал данный сайт.
    1 балл
  4. что-то не видно никаких изменений.. и по запросу "модули opencart" в выдаче гугла - даже в первой пятерке страниц нет поправьте, если ошибаюсь (проверял в режиме инкогнито) я в курсе про восточную мудрость, гласящую но стараюсь равняться на другую может уже что-то начать делать с этим?
    1 балл
  5. Добрый день. Вот в этом модуле есть настройка акций на опции: Там есть такая настройка, которая будет давать акцию и на опции, пропорционально акции на товар:
    1 балл
×
×
  • Создать...