Foren / National / Russian / Тех. поддержка / Проблемы с Якорем в тексте

Ссылается на первый уровень

Macik
#39342 25. März 2014, 21:44

Плагин «nofollow» не должен влиять, т.к. имеет дело только с внешними ссылками.

Потестил у себя и уловил суть. Тут комплексная проблема, основанная на использовании «base url». И складывается она из следующих вещей:

  1. CKEditor нечего не знает о base url. И его вставка якорных ссылок расчитана на то, что он явно не указан. Тогда прямая якорная ссылка (<a href="#якорь">Якорь</a>) будет использовать полный адрес (адрес страницы + якорь).
  2. Cotonti, как правило, указывает Base URL (на самом деле зависит от шаблона header.tpl). Делается это для обеспечения корректной работы относительных ссылок в двух условиях: если сайт установлен не в корневой каталог домена или если сайт использует ЧПУ (например при включенном URLeditor и handy preset, когда адреса вида site.com/pagealias). Тогда якорь начинает трактоваться системой (браузером), как относительный путь, и как следствие на выходе получаем адрес: baseUrl+якорь, без учета реальной страницы.

Вариантов решения в голову приходит 2:

  1. Если не используеются ЧПУ и сайт находится в корне домена — можно убрать директиву base из шаблонов темы оформления.
  2. Написать маленький плагин-костыль, который будет менять прямые якорные ссылки, на ссылки с полным именем текущей страницы, повесив его на хуки «page.add.add.error» и «page.edit.update.error» (или что там перед самым сохранением страницы в базу идет?).

 

 

https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F