Если нужно сделать адреса страниц, заканчивающихся слешем, то вот такое решение:
1) Переходим в раздел Типы содержимого (Содержимое->Типы содержимого) и для типа html меняем параметр Расширение с .html на /

2) Ваши страницы будут доступны по адресам имя_сайта/адрес_страницы/
Однако, они будут так же доступны и по адресам без слеша на конце, что не очень хорошо для SEO. Поэтому нам нужно сделать 301 редирект при обращении к страницам без слеша на конце на такую же, но только со слешем.

3) Создаем плагин (имя на ваш вкус).
На вкладке Системные события выбираем OnHandleRequest

Код плагина:

<?php
/*Переадресация с адресов, заканчивающихся без слеша / на адреса со слешем / */

$url=$_SERVER['REQUEST_URI'];
if($_SERVER['HTTPS']=='on'){$http='https';}else{$http='http';}

if(substr($url,0,6)=='/index'){
    header("HTTP/1.1 301 Moved Permanently"); 
    header("Location: ".$http."://".$_SERVER['HTTP_HOST']); 
    exit();
}

$exclude=array('.xml','.txt','.ico','.yml','json','.php','html','.pdf','.svg'); //массив исключений - какие адреса могут формироваться системой

$query_str=strstr($_SERVER['REQUEST_URI'],'?'); //Если в адресе есть параметры (например ?a=something123 )
if($query_str!=''){
    $url=substr($url,0,strpos($url,$query_str)); //Отделяем параметры от адреса
}


if(!in_array(substr($url,-4), $exclude) and substr($url,-1)!='/' and stripos($url,'bannerclick')==0){

    $url=substr($url,1).'/'; //убираем / в начале и добавляем в конце
    
    $obj=$modx->getObject('modResource',array('uri'=>$url));
    if(!$obj){
        header("HTTP/1.1 404 Not Found");
    }elseif($obj->get('published')==1){
        header("HTTP/1.1 301 Moved Permanently"); 
        header("Location: ".$http."://".$_SERVER['HTTP_HOST'].'/'.$url.$query_str); 
        exit();
    
    }else{
        header("HTTP/1.1 404 Not Found"); 
        exit();
    }
}


Сохраняем. Проверяем…
Надеюсь, пригодится кому.