Вопросы

Как реализовать кэширование браузера в Nginx?

Здравствуйте! Перевел облачный сервер на Nginx + PHP-FPM. Ранее все настройки были под Apache c настройками в .htaccess:
## EXPIRES CACHING ##
<IfModule mod_expires.c>
  ExpiresActive on
  ExpiresDefault                          "access plus 1 month"
  ExpiresByType text/cache-manifest       "access plus 0 seconds"
  ExpiresByType text/html                 "access plus 0 seconds"
  ExpiresByType text/xml                  "access plus 0 seconds"
  ExpiresByType application/xml           "access plus 0 seconds"
  ExpiresByType application/json          "access plus 0 seconds"
  ExpiresByType application/pdf           "access plus 1 day"
  ExpiresByType application/rss+xml       "access plus 1 hour"
  ExpiresByType image/x-icon              "access plus 1 week" 
  ExpiresByType image/gif                 "access plus 1 month"
  ExpiresByType image/png                 "access plus 1 month"
  ExpiresByType image/jpg                 "access plus 1 month"
  ExpiresByType image/jpeg                "access plus 1 month"
  ExpiresByType video/ogg                 "access plus 1 month"
  ExpiresByType audio/ogg                 "access plus 1 month"
  ExpiresByType video/mp4                 "access plus 1 month"
  ExpiresByType video/webm                "access plus 1 month"
  ExpiresByType text/x-component          "access plus 1 month"
  ExpiresByType font/truetype             "access plus 1 month"
  ExpiresByType font/opentype             "access plus 1 month"
  ExpiresByType application/x-font-woff   "access plus 1 month"
  ExpiresByType image/svg+xml             "access plus 1 month"
  ExpiresByType application/vnd.ms-fontobject "access plus 1 month"
  ExpiresByType text/css                  "access plus 2 months"
  ExpiresByType application/javascript    "access plus 2 months"
  ExpiresByType text/javascript           "access plus 2 months"

  <IfModule mod_headers.c>
    Header append Cache-Control "public"
  </IfModule>

</IfModule>

Сейчас настройки Nginx:
server {
        listen 80;
        server_name example.com www.example.com;
        root /home/sites/example.com;
        index index.php;
        client_max_body_size 30M;
        location / {
                root /home/sites/example.com;
                if (!-e $request_filename) {
                        rewrite ^/(.*)$ /index.php?q=$1 last;
                }
        }
        location ~ \.php$ {
                try_files $uri =404;
                fastcgi_split_path_info ^(.+\.php)(.*)$;
                fastcgi_pass   127.0.0.1:9000;
                fastcgi_index  index.php;
                fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
                include fastcgi_params;
                fastcgi_ignore_client_abort on;
                fastcgi_param  SERVER_NAME $http_host;
        }

        location ~ /\.ht {
                deny  all;
        }
}

Не понимаю, как EXPIRES CACHING перенести в Nginx?
Нашел в интернете старые настройки далекого 2013-2015 г., но не понимаю это оно или нет и вообще актуальность этого:
location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpeg|avi|zip|gz|bz2|rar|swf|ico|7z|doc|docx|map|ogg|otf|pdf|ttf|tif|txt|wav|webp|woff|woff2|xls|xlsx|xml)$ {
        try_files $uri @rewrite;
        access_log off;
	    expires 10d;
	    break;
    }
Александр
05 августа 2025, 23:51
modx.pro
262
0

xParser - Зависает, если в массиве изображении имеют одинаковые названия.

Столкнулся с такой проблемой:
Если в массиве изображении имеют одинаковые названия, то при парсинге висит загрузка и ничего не происходит.
Сергей
05 августа 2025, 13:45
modx.pro
93
0

Мусорные ссылки

Добрый день, вопрос возможно не относится именно к cms modx, но мало ли, на сайте начали формироваться мусорные ссылки при сканировании через screaming frog
причем некоторые страницы, если написать чушь в конце урла (например /contacts/12) отдают 404, а вот некоторые (например /kredit/123) — уже 200 отдают, как такое вообще может быть
Так же лягушка при сканировании находит такие страницы домен/center/assets/template/js/assets/template/js/assets/template/js/bots1c_chat_links.js
Андрей
05 августа 2025, 12:10
modx.pro
83
0

Нужна помощь в работе готового модуля msRussianPost

Максим
04 августа 2025, 12:41
modx.pro
81
0

pdoPage в режиме Ajax не работает ajaxHistory

Здравствуйте.
В постраничной навигации не работает ajaxHistory, если находимся на 2,3 и т.д. странице, при перезагрузки страницы происходит переход на первую страницу каталога. Если убираю Ajax, страницы не переключаются вообще.
Вот код сниппета:
Дмитрий
30 июля 2025, 09:02
modx.pro
96
0

Отключение вкладок формы редактирования товара в зависимости от группы пользователя

Здравствуйте!

Modx Revo 2.8.8
Последний Minishop2

Задача: есть группа менеджеров, которым нужно дать доступ только к редактированию одного TV.

Через кастомизацию форм modx отключил все вкладки и их содержимое. Но MS2 упорно вставляет вкладки «Товар», «Галерея».
Отключение вкладок через системные настройки минишопа не подходит, так как вкладки надо убрать только у одной группы.
Скаут
30 июля 2025, 08:46
modx.pro
223
0

msImportExport не сохраняет родителя по умолчанию

Добрый день, кто-то сталкивался с чем то похожим?

После перехода на вторую версию попробовали настроить импорт.
Столкнулись с проблемой, что не сохраняется одна системная настройка пресета импорта документов — родитель по умолчанию.
Там проставлено значение — 0
При попытке его изменить ничего не происходит.
Это тут — skr.sh/sWjXgwCceKJ
Что можно сделать для исправления?
yuri
22 июля 2025, 16:23
modx.pro
289
0

modinstagram2 перестал работать

Добрый день как то покупал дополнение modinstagram*2 но в декабре 2024 года перестало работать как я понял приложение instagram* basic display убрали. На данный момент плагин выдает ошибки
modinstagram*2 getMedia ERROR: 400 text: {"error":{"message":"Error validating access token: Session has expired on Thursday, 30-Jan-25 20:58:15 PST. The current time is Sunday, 20-Jul-25 05:25:51 PDT.","type":"OAuthException","code":190,"fbtrace_id":"A3Ynj_xg28Vutnaui5H_wCy"}}

modinstagram*2 getProfileInfo ERROR: 400 text: {"error":{"message":"Error validating access token: Session has expired on Thursday, 30-Jan-25 20:58:15 PST. The current time is Sunday, 20-Jul-25 05:25:51 PDT.","type":"OAuthException","code":190,"fbtrace_id":"AcVfwQqdZiVh8mMKstSiyDe"}}
подскажите может кто то сталкивался есть возможность починить?
eflit
20 июля 2025, 15:55
modx.pro
99
0

Округление копеек в списке Заказов minishop2

Добрый день. Столкнулся с такой проблемой, что в списке заказов minishop2 округляются копейки:


Пробовал и гуглить и менять настройки minishop2, в общей сумме всё равно они округляются. Может кто-то сталкивался с таким?

Спасибо
snyadanak
15 июля 2025, 16:53
modx.pro
239
0

Прерывание внутри плагина

Добрый день, подскажите. Есть плагин, который выполняется перед сохранение данных пользователя. В случае исключительной (я создают условие сам) ситуации нужно остановить и вернуть текст ошибки. Но вот незадача, почему-то после выполнения кода, дальше моего условия скрипт не идет, а вот выполнение штатного скрипта modx (сохранение пользователя) идет.

Пример кода:

<?php
if ($modx->event->name === 'OnUserFormSave') {
// Пример условия для прерывания
if ($user->get('email') === 'blocked@example.com') {
$modx->event->output('Регистрация с таким email запрещена.');
$modx->event->stopPropagation();
return;
}

// Или выбросить исключение (если обрабатывается в компоненте или сниппете)
// throw new Exception('Регистрация с таким email запрещена.');
}

Или

<?php
if ($modx->event->name === 'OnUserBeforeSave') {
// Пример: запретить создание пользователя с определённым email
$email = $user->get('email');

if ($email === 'blocked@example.com') {
$modx->event->output('Пользователь с таким email не может быть создан.');
$modx->event->_output = 'Пользователь с таким email не может быть создан.';
$modx->event->stopPropagation(); // Остановить выполнение других плагинов
return false; // Очень важно — возврат false остановит сохранение!
}

В чем может быть причина?
}
charset
13 июля 2025, 21:06
modx.pro
259
0