Станислав
С нами с 11 января 2013; Место в рейтинге пользователей: #1227- Заметки 67
- Комментарии 11
08 января 2026, 12:31
Большие сомнения у меня в этом)
resComments — многоуровневые комментарии с пагинацией для ресурсов MODX3 3
07 января 2026, 15:36
вот этот сниппет
require_once MODX_CORE_PATH . 'model/modx/modx.class.php';
$modx = new modX();
$modx->initialize('web');
$modx->getService...
Проблемы с отправкой писем статус заказа из minishop2 5
06 января 2026, 20:15
Хотел проверить еще раз, теперь все работает. Спасибо.
MiniShop3 1.0.0-alpha.4 — Большое обновление админки 24
05 января 2026, 14:53
Тоже не понял зачем эти сложности, всегда этот скрипт юзал.
Почему в новых версиях MODX не работает сброс пароля через MD5 и как восстановить доступ в manager 4
30 декабря 2025, 22:52
Почему-то прочитал это голосом комментатора из Дома 2… Только про Minishop 3!) Спасибо всем за вклад в развитие и, достаточно неплохие итоги года)
Итоги 2025 года на MODX.pro 3
27 декабря 2025, 16:41
MODX, как и любой основанный на PHP фреймворк пишет 500 ошибки в error_log. Никаких специальных настроек в нем нет. Все зависит от настроек хостинга\с...
Отладка 500 ошибки MODX 1
24 декабря 2025, 22:11
Есть поле mail_smtp_user введи туда логин, если не сработает введи email. И не забудь в emailsender корректный email прописать.
Modx 2.8.8 еще подходит отправки почты через smtp.yandex.ru? 3
24 декабря 2025, 00:23
Нет, лайки всегда были привязаны ко времени публикации, чтобы лайками старых постов рейтинг не накручивали.
MiniShop3 - новый релиз. 1.0.0-alpha.2 15
Код сниппета ParseInsta:
И далее JSON обрабатываем через JS или конвертуть в массив и использовать в чанках
Нужно добавить в нужный источник файлов булеву настройку hideSource:
и создать плагин на OnMediaSourceGetProperties:
Это очистит источники в дереве.
2) т/к availability (из инфы от автора вопроса) для товара добавлено через систему плагинов minishop2 которую также в удобной форме реализует дополнение msFieldsManager то код примет следующий вид
Вариант, работающий только при [merge_slashes = off]
Конструкция, которую вы привели, имеет логическую ошибку, из-за чего удалять она будет только по одному слешу (если подряд идущих слешей — несколько, будет несколько последовательных 301 редиректов), что не есть хорошо. В rewrite первая звёздочка захватит часть слешей, оставив конструкции //+ только 2 слеша.
Что нужно сделать, чтобы довести конструкцию до ума:
1. «Умерить» жадность этой звёздочки
2. Добавить символы начала и конца строки (не обязательно, но желательно)
3. Максимально упростить регулярное выражение в location (т.к. оно используется только для обнаружения факта присутствия в uri лишних слешей)
Вариант, работающий только при [merge_slashes = on]
А ещё лучше использовать конструкцию, которая не требует отключения merge_slashes (работает только при включенном merge_slashes):
Здесь переменная $request_uri содержит исходный uri с исходными аргументами запроса (до корректировки веб-сервером и до всяких внутренних редиректов). Конструкция ^[^?]* слева от слешей нужна, чтобы убедиться, что лишние слеши обнаружены именно в uri, а не в составе аргументов (слэши в составе аргументов не трогаем). И в самую последнюю очередь делаем 301 редирект на uri, который nginx уже самостоятельно очистил от лишних слешей (это значение содержится в переменной $uri).
Универсальный вариант, не зависящий от состояния [merge_slashes]
Если же нужен универсальный вариант, который не зависит от состояния директивы merge_slashes, то делаем так (слэши в составе аргументов не трогаем):
создать плагин на pdoToolsOnFenomInit, в нем добавить модификатор detector
и теперь в любом месте можно делать так
защита серверная.
Все дело в спам-программах — они сначало пытаются понять, с каким движком имеют дело, а только потом уже заспамиться\зарегистрировать пользователя\оставить ссылку, делают они это по следующим признакам:
1. наличие footprint'а в файле html
Этот пункт не относится к MODX — пропускаем
2. ломятся по известным адресам (папкам)
И так далее — тут они понимают, битрикс ли это или форум phpbb, или что там еще.
Вот этот пункт интересен.
В nginx вешаем правило
— исключительно чтобы не нагружать php5-fpm\hhvm демон спамными запросами, динамический бэкэнд и там отдаст 404 ошибку т.к. этих папок нет.
Потом ставим fail2ban, и организуем следующий jail:
/etc/fail2ban/filter.d/nginx-noscript.conf
и в файле:
/etc/fail2ban/filter.d/jail.conf
Таким образом, любой, кто запросит подобные расположения папок: example.com/bitrix более 3 раз (maxretry = 3), попадет в бан по IP адресу на 10 минут (bantime = 600)
При такой защите не только у спам-программ отпадает охота сканить ваш сайт, но и у тех, кто делает это вручную.
+Абсолютная неуязвимость к программам определяющих на какой CMS ваш сайт
+Практически никакого спама (только если форма отправки сообщений висиь на главной страничке)
+Разгрузка динамического бэкэнда php5-fpm\hhvm от ненужных запросов
Все эти интересные пути запрашиваются тысячами, обнаружить их можно анализируя логи через удобный интерфейс piwik, который называется log analizator, серверный скрипт, написанный на питоне. Смотрит все логи nginx и строит по ним всякие графики, пободно yandex.metrika, только по логам а не через прикрепляемый javascript (хотя такая возможность тоже есть). Тут же можно следить, как часто робот яндекса\гугла посещает ваш сайт.
location ~* ^/assets/images/products/\d+/\d+x\d+/ { access_log off; expires 10d; break; } location ~* ^/assets/images/products/\d+/ { deny all; }Наверное, можно и как-то красивее написать, но я не придумал.Теперь никто не откроет полноразмерные картинки, и ты можешь отдавать их через PHP покупателям.