Плагин «nofollow» не должен влиять, т.к. имеет дело только с внешними ссылками.
Потестил у себя и уловил суть. Тут комплексная проблема, основанная на использовании «base url». И складывается она из следующих вещей:
- CKEditor нечего не знает о base url. И его вставка якорных ссылок расчитана на то, что он явно не указан. Тогда прямая якорная ссылка (<a href="#якорь">Якорь</a>) будет использовать полный адрес (адрес страницы + якорь).
- Cotonti, как правило, указывает Base URL (на самом деле зависит от шаблона header.tpl). Делается это для обеспечения корректной работы относительных ссылок в двух условиях: если сайт установлен не в корневой каталог домена или если сайт использует ЧПУ (например при включенном URLeditor и handy preset, когда адреса вида site.com/pagealias). Тогда якорь начинает трактоваться системой (браузером), как относительный путь, и как следствие на выходе получаем адрес: baseUrl+якорь, без учета реальной страницы.
Вариантов решения в голову приходит 2:
- Если не используеются ЧПУ и сайт находится в корне домена — можно убрать директиву base из шаблонов темы оформления.
- Написать маленький плагин-костыль, который будет менять прямые якорные ссылки, на ссылки с полным именем текущей страницы, повесив его на хуки «page.add.add.error» и «page.edit.update.error» (или что там перед самым сохранением страницы в базу идет?).