Cotonti / Cotonti

Fast, reliable and flexible PHP CMF/CMS
https://www.cotonti.com
BSD 3-Clause "New" or "Revised" License
92 stars 51 forks source link

Autoalias - page alias and category code collision #1781

Open Alex300 opened 2 months ago

Alex300 commented 2 months ago

[RU]
Если отключена опция "Добавить ID страницы в начало алиаса" и есть категория с кодом abc и создав страницу с тайтлом ABC без алиаса получишь алиас abc и будет 404 (проверить)

Решение:
1) Проверить существование категории с кодом совпадающим с алиясом, если есть - добавлять ID перед алиясом принудительно 2) Попробовать как то улучшить обработку ситуации, когда код категории совпадает алиясом при разборе урла.

Note: заодно решить https://github.com/Cotonti/Cotonti/issues/1569

Dayver commented 1 month ago

Решение:
1) Проверить существование категории с кодом совпадающим с алиясом, если есть - добавлять ID перед алиясом принудительно

Такое решения не полное, не учитывает момент - если сначала создали страницу, а потом создают категорию то такая защита не сработает и её нужно дополнять еще и проверкой в момент создания категории. Тогда в принципе, обработки и проверки в момент разбора урла не нужны будут, поскольку хоть и немного но будут давать лишнюю нагрузку на генерации каждой страници. Так что лучше не допустить коллизию чем постоянно мониторить её наличие

seditio commented 1 month ago

Только мне одному кажется, что идея с автоалиасами тупиковая?)) ID в алиасе семантичности не добавляет, отслеживание кодов категорий на совпадение тоже идея так себе и требует 301 редирект (если алиас цеплять к категории). Но только зачем? В важных для продвижения посадочных страницах алиас всегда прописывается вручную и не факт что совпадает "1 в 1" с заголовком. Тем более, что поисковики если и учитывают его, то очень минимально. С другой стороны, короткий (без алиаса) урл прекрасно работает для новостей, блога, статей и проч. Возможно не стоит убиваться о сомнительную идею?

Dayver commented 1 month ago

Только мне одному кажется, что идея с автоалиасами тупиковая?))

Автоалиас - хороший функционал который облегчает работу тому кто наполняет сайт - не вижу ни одного повода на данный момент отказаться от такой функциональности в коробке. По крайне мере пока.

ID в алиасе семантичности не добавляет

Тут уже можно обсуждать компромиссное решение. Можно в указанной ситуации при срабатывании проверки например добавлять некий рандомный суффикс или префикс . Например точку в конец или что то еще. Вариант с ID это наиболее простое решение которое позволит быстро решить достаточно редко встречающуюся проблему. Можно ничего не добавлять, а останавливать процес и выдавать ошибку для ручного решения самим пользователем. Можно подумать про применение ИИ с просьбой к нему о перефразировании для алиаса). Вообщем вариантов решения масса и как раз выбрано самое простое решение которое скорее всего устроит большинство но можно конечно и заморочиться.

отслеживание кодов категорий на совпадение тоже идея так себе и требует 301 редирект (если алиас цеплять к категории). Но только зачем? В важных для продвижения посадочных страницах алиас всегда прописывается вручную и не факт что совпадает "1 в 1" с заголовком. Тем более, что поисковики если и учитывают его, то очень минимально.

А тут не понятно про что речь и причем тут редирект. В тикете же речь идёт про изменение алиаса к создаваемой странице, а не изменение алиасов уже имеющихся страниц\категорий то есть ничто старое не меняется в процессе, а тогда зачем обсуждать 301 редирект?!

С другой стороны, короткий (без алиаса) урл прекрасно работает для новостей, блога, статей и проч. Возможно не стоит убиваться о сомнительную идею?

Снова возвращаясь к тому с чего начали - автоматическое генерирование алиаса давно использует очень много вебмастеров на своих cotonti сайтах потому совсем отказываться от него рановато но при этом решить имеющиеся баги с его работой не так уж и сложно особенно если идти простым путём добавления идишника в алиас без рассуждений про семантику цифр в урле.

Тут как раз простая логика по обоим тикетам - проблемы довольно редкие потому и срочности в их решении не много. Исправления и тут и там предложены простые как раз без углубления в тонкости - что хорошо. Вот если бы проблемы требовали однозначно сложных решений тогда да можно было бы обсуждать вывод плагина за пределы коробки, а так просто взять компромиссный вариант который будет прост в кодировании и при этом не вдаваться в крайности в виде отказа от атогенерации алиасов