Как сделать исключение в 404?

В MODX, чтобы сделать исключение в 404 странице, можно воспользоваться двумя подходами.

Первый подход - использование плагина. Создайте новый плагин и выберите событие "OnPageNotFound". Далее, в коде плагина, вы можете определить условие, при котором будет срабатывать исключение. Например, если в URL содержится определенное слово или текст, вы можете перенаправить пользователя на другую страницу, используя функцию $modx->sendRedirect(). Вот пример кода плагина:

<?php
if ($modx->event->name == 'OnPageNotFound') {
    $requestUri = $_SERVER['REQUEST_URI'];

    if (strpos($requestUri, 'исключаемый-текст') !== false) {
        $modx->sendRedirect('/новая-страница', array('response' => '404'));
    }
}

Второй подход - использование .htaccess. Добавьте следующий код в ваш .htaccess файл для создания исключения:

ErrorDocument 404 /index.php?request=404

Далее, в index.php, вы можете проверить параметр "request" и выполнить необходимые действия. Вот пример кода, который перенаправляет пользователя на другую страницу, если в URL содержится определенное слово или текст:

<?php
$request = isset($_REQUEST['request']) ? $_REQUEST['request'] : '';

if ($request == '404') {
    $requestUri = $_SERVER['REQUEST_URI'];

    if (strpos($requestUri, 'исключаемый-текст') !== false) {
        header('Location: /новая-страница', true, 301);
        exit;
    }
}

Оба подхода позволяют создавать исключения в 404 странице в MODX, в зависимости от ваших конкретных требований и предпочтений. Выберите подход, который лучше всего соответствует вашим потребностям.