Вопросы
Как реализовать кэширование браузера в Nginx?
Здравствуйте! Перевел облачный сервер на Nginx + PHP-FPM. Ранее все настройки были под Apache c настройками в .htaccess:
Сейчас настройки Nginx:
Не понимаю, как EXPIRES CACHING перенести в Nginx?
Нашел в интернете старые настройки далекого 2013-2015 г., но не понимаю это оно или нет и вообще актуальность этого:
## 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;
}
xParser - Зависает, если в массиве изображении имеют одинаковые названия.
Столкнулся с такой проблемой:
Если в массиве изображении имеют одинаковые названия, то при парсинге висит загрузка и ничего не происходит.
Если в массиве изображении имеют одинаковые названия, то при парсинге висит загрузка и ничего не происходит.
Мусорные ссылки
Добрый день, вопрос возможно не относится именно к cms modx, но мало ли, на сайте начали формироваться мусорные ссылки при сканировании через screaming frog
причем некоторые страницы, если написать чушь в конце урла (например /contacts/12) отдают 404, а вот некоторые (например /kredit/123) — уже 200 отдают, как такое вообще может быть
Так же лягушка при сканировании находит такие страницы домен/center/assets/template/js/assets/template/js/assets/template/js/bots1c_chat_links.js
причем некоторые страницы, если написать чушь в конце урла (например /contacts/12) отдают 404, а вот некоторые (например /kredit/123) — уже 200 отдают, как такое вообще может быть
Так же лягушка при сканировании находит такие страницы домен/center/assets/template/js/assets/template/js/assets/template/js/bots1c_chat_links.js
pdoPage в режиме Ajax не работает ajaxHistory
Здравствуйте.
В постраничной навигации не работает ajaxHistory, если находимся на 2,3 и т.д. странице, при перезагрузки страницы происходит переход на первую страницу каталога. Если убираю Ajax, страницы не переключаются вообще.
Вот код сниппета:
В постраничной навигации не работает ajaxHistory, если находимся на 2,3 и т.д. странице, при перезагрузки страницы происходит переход на первую страницу каталога. Если убираю Ajax, страницы не переключаются вообще.
Вот код сниппета:
Отключение вкладок формы редактирования товара в зависимости от группы пользователя
Здравствуйте!
Modx Revo 2.8.8
Последний Minishop2
Задача: есть группа менеджеров, которым нужно дать доступ только к редактированию одного TV.
Через кастомизацию форм modx отключил все вкладки и их содержимое. Но MS2 упорно вставляет вкладки «Товар», «Галерея».
Отключение вкладок через системные настройки минишопа не подходит, так как вкладки надо убрать только у одной группы.
Modx Revo 2.8.8
Последний Minishop2
Задача: есть группа менеджеров, которым нужно дать доступ только к редактированию одного TV.
Через кастомизацию форм modx отключил все вкладки и их содержимое. Но MS2 упорно вставляет вкладки «Товар», «Галерея».
Отключение вкладок через системные настройки минишопа не подходит, так как вкладки надо убрать только у одной группы.
msImportExport не сохраняет родителя по умолчанию
Добрый день, кто-то сталкивался с чем то похожим?
После перехода на вторую версию попробовали настроить импорт.
Столкнулись с проблемой, что не сохраняется одна системная настройка пресета импорта документов — родитель по умолчанию.
Там проставлено значение — 0
При попытке его изменить ничего не происходит.
Это тут — skr.sh/sWjXgwCceKJ
Что можно сделать для исправления?
После перехода на вторую версию попробовали настроить импорт.
Столкнулись с проблемой, что не сохраняется одна системная настройка пресета импорта документов — родитель по умолчанию.
Там проставлено значение — 0
При попытке его изменить ничего не происходит.
Это тут — skr.sh/sWjXgwCceKJ
Что можно сделать для исправления?
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"}}
подскажите может кто то сталкивался есть возможность починить?
*Meta, которой принадлежат facebook и instagram признана экстремистской в России
Округление копеек в списке Заказов minishop2
Добрый день. Столкнулся с такой проблемой, что в списке заказов minishop2 округляются копейки:

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

Пробовал и гуглить и менять настройки minishop2, в общей сумме всё равно они округляются. Может кто-то сталкивался с таким?
Спасибо
Прерывание внутри плагина
Добрый день, подскажите. Есть плагин, который выполняется перед сохранение данных пользователя. В случае исключительной (я создают условие сам) ситуации нужно остановить и вернуть текст ошибки. Но вот незадача, почему-то после выполнения кода, дальше моего условия скрипт не идет, а вот выполнение штатного скрипта 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 остановит сохранение!
}
В чем может быть причина?
}
Пример кода:
<?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 остановит сохранение!
}
В чем может быть причина?
}