Некорректная работа Redirect с ЧПУ ссылками
Roffun |
|
---|---|
#45023 Дмитрий: Если есть желание понять суть проблемы, нужно обратиться к документации и принципу работы URL в Cotonti. Если речь идёт о ЧПУ значит подразумевается обработка URL. В Cotonti они модифицируются в двух местах:
Если плагин включен и прописаны правила, это значит что движок будет отдавать содержимое по новым правилам, но сервер об этом ничего не знает, поэтому правила нужно добавить еще и в серверный файл. Для существующих адресов этого достаточно, но если речь идет о страницах которых не существует (в вашем случае движок подразумевает что хотите несуществующую страницу 404 переадресовать на новый адрес). Поэтому сырой URL (/index.php?e=page&c=manual&al=doc1) работает, ведь страница существует, а предыдущая ЧПУ не редиректится, потому что её как бы и не было, это просто ЧПУ редирект был. Если бы страница с которой редирект существовала, то всё сработало бы, а так приоритет отдаётся 404, отсюда и проблема с редиректом. Решение вопроса находится над ситуацией, все вышеперечисленные варианты это лишь костыли в данном случае. Для понимания процесса нужно посмотреть документацию: Что такое Хуки? В подразделе 2.1. Основные хуки можно прочитать, что:
Как видно из описания, хук input вызывается на этапе инициализации, поэтому его можно переопределить только в этой точке. А плагин UrlEditor как раз в этом месте вызывает функцию cot_apply_rwr() в которой происходит дальнейшая логика ЧПУ. Вывод: чтобы максимально влиять на ЧПУ, в том числа на удалённые/перемещённые URL, нужно делать это программно на уровне хука. Чтобы не писать дополнительный плагин, можно воспользоваться r301 от esclkm. После установки редирект можно добавлять из админки. p.s. Если протокол сайта https, нужно изменить его и в файле input.php (плагин давно не обновлялся). Улетел на другую планету, а там почты нету.. https://www.cotonti.com/forums/45298?m=posts
|