Стандартный SEF в Joomla 1.5 и с чем его едят (miniFAQ). Как в joomla получить алиас материала через php
Как избавиться от дублирования контента Joomla
Псевдоним (алиас) пункта меню – отличный инструмент, который очень часто упускается администраторами сайтов на Joomla. Он позволяет создать пункт меню, который ссылается на другой, уже существующий пункт меню.
Мы можем использовать псевдонимы, чтобы создать повторяющийся элемент меню без создания дубликатов URL или дублирования контента. Они очень просты в использовании, и могу помочь решить проблемы SEO и контент-менеджмента в Joomla.
Псевдоним (алиас) пункта меню – отличный инструмент, который очень часто упускается администраторами сайтов на Joomla. Он позволяет создать пункт меню, который ссылается на другой, уже существующий пункт меню.
Мы можем использовать псевдонимы, чтобы создать повторяющийся элемент меню без создания дубликатов URL или дублирования контента. Они очень просты в использовании, и могу помочь решить проблемы SEO и контент-менеджмента в Joomla.
Что такое псевдоним пункта меню?
Псевдоним пункта меню – тип пункта меню, который доступен в Менеджере меню Joomla. Его также называют алиасом. Однако не стоит путать алиас меню с полем «Алиас», который есть у каждого пункта меню для создания Url-адреса пункта меню (о нем также скажем отдельно).
Псевдоним пункта меню – это тоже тип меню, как, допустим, Блог материала или просто Материал. Однако он не отображает контент, а является ссылкой.
Зачем нам нужен псевдоним пункта меню?
Сайты обычно имеют несколько навигационных меню, чтобы помочь пользователям найти любую необходимую информацию, и это не редкость, когда одни и те же ссылки располагаются в нескольких меню. Например, меню в футере может содержать одни и те же ссылки, что и в главном меню. Если эти ссылки меню не настроены должным образом, могут возникнуть проблемы с дублированием контента, нескольких URL для одних страниц и другие проблемы. К счастью, в Joomla имеется очень простой способ избежать подобных проблем с помощью Псевдонима пункта меню.
С технической точки зрения, Псевдоним пункта меню позволяет нам решить проблему с невозможностью создания одного и того же адреса для нескольких пунктов меню в Joomla 3. Не будем вдаваться в тонкости архитектуры меню в Joomla, нам пока просто важно знать, что в Joomla каждый пункт меню должен иметь уникальный адрес страницы, который задается полем алиас в Менеджере меню для каждого пункта меню (см. скриншот, чтобы понять разницу).
Пример:
Заметьте, что верхнее меню и боковое меню имеют одинаковые пункты. Чаще всего верхнее меню строится из реальных пунктов меню, выводящих контент, а боковое меню – из ссылок и псевдонимов.
Почему мы должны его использовать?
Псевдоним пункта меню, как уже было сказано, позволяет создать ссылку на уже существующий пункт меню. Допустим, у нас есть пункт «О нас». Этот пункт находится в главном верхнем меню и ведет на одиночный материал «О нас». А нашей задачей является внести еще один такой пункт меню в меню в футере (блок меню в самом низу сайта). И вместо того, чтобы создавать еще один пункт меню, который ссылается на тот же самый материал «О нас», мы просто создаем Псевдоним пункта меню. Почему именно так?
Если вы все-таки решили создать еще один такой же пункт, то вам нужно, чтобы страница имела такой же адрес. Допустим уже существующий пункт главного меню «О нас» имеет адрес: joomla.ru/about-us
Значит нам нужно в новом, создаваемом нами пункте меню нам нужно ввести алиас меню, как и в уже существующем меню. То есть, «about-us».
Однако, когда вы введете алиас и нажмете сохранить – вы увидите вот такое сообщение об ошибке.
«Предупреждение
Сохранить не удалось из-за ошибки: Другой пункт меню, верхнего уровня, уже содержит такой Алиас»
Вы, наверное, уже видели данную ошибку и были немного озадачены, особенно если вы не очень хорошо знакомы с Joomla. Причина появления данной ошибки – уже существующий пункт меню с таким адресом.
Если же вы уверены, что такого пункта нет – скорее всего он находится в корзине и вам нужно просто ее очистить через менеджер меню.
А вообще, в большинстве случаев эта ошибка говорит вам «НУЖНО ИСПОЛЬЗОВАТЬ ПСЕВДОНИМ ПУНКТА МЕНЮ!». И это правда!
Чтобы избавиться от ошибки достаточно переключить тип пункта меню на Псевдоним пункта меню, а потом выбрать нужный пункт меню с тем же адресом.
Конечно, вы можете обойти данную ошибку, переименовав алиас во что-то типа «about-us-2». ЭТО ОЧЕНЬ ПЛОХОЕ РЕШЕНИЕ!
Вы получите 2 разные страницы «О нас», из-за чего вы, как минимум, получите проблемы с назначением модулей (они могут быть на одной странице и не быть на другой), путаницу в структуре сайта. А кроме всего этого, это может повлечь за собой проблемы с SEO. 2 одинаковые страницы с разными адресами «в глазах» поисковика – это дублирование контента, которое, как правило, негативно влияет на продвижение.
Когда вы выберете пункт меню Псевдоним пункта меню и сохраните его, вы увидите, что Joomla может создать алиас страницы из даты и времени. Но не стоит этого пугаться, это чисто системные детали, которые никак не повлияют на адрес страницы, а используются для системных связок.
Почему это полезно?
Псевдоним пункта меню избавляет нас от проблем с модулями, дублированием контента, усложненной структурой сайта и проблемам с SEO.
Несомненно, вы могли выбрать пункт меню Внешняя ссылка, а в нем прописать полный адрес страницы типа joomla.ru/about-us
Однако и это может быть проблематично, поскольку вы можете захотеть переименовать пункт меню, поменять/переименовать ссылку на страницу, перенести сайт и сменить домен. Это тоже может быть довольно проблематично. В случаях любых изменений вам придется каждый раз вносить любые изменения вручную. Чтобы избавиться от всех этих проблем, легче использовать Псевдоним пункта меню.
joomla.ru
Глоссарий - Joomla! Documentation
- Joomla!
- Joomla! Home
- What is Joomla?
- Benefits & Features
- Project & Leadership
- Trademark & Licensing
- Support Joomla!
- Contribute
- Sponsor
- Partner
- Shop
- Download & Extend
- Downloads
- Languages
- Get a free site
- Discover & Learn
- Documentation
- Training
- Certification
- Site Showcase
- Announcements
- Blogs
- Magazine
- Community & Support
- Community Portal
- Events
- User Groups
- Forum
- Resources Directory
- Volunteers Portal
- Vulnerable Extensions List
- Developer Resources
- Developer Network
- Security Centre
- Issue Tracker
- GitHub
- API Documentation
- Joomla! Framework
- JoomlaCode
-
- What links here
- Related changes
- Special pages
- Printable version
- Permanent link
- Page information
- Recent changes
- Help
- Log in
- Download
- Launch
- Learn
- More About Joomla!
- Beginners
- Administrators
- Developers
- Joomla! Get Involved
- Joomla! Code Contributors
- Joomla User Groups
- Browse
- CMS Help Screens
- Our Docs
- Our Glossary
- The Joomla! FAQs
- Tips and tricks
- Recent Changes
- Help
- Contribute to Joomla! Docs
- Translate Joomla! Docs
- Editing Help
- Play in the Sandbox
- JDOC's Policies
- Documentation License
- More Help
-
Search
Help25
From Joomla! Documentation
This page is adocs.joomla.org
Стандартный SEF в Joomla 1.5 и с чем его едят (miniFAQ)
В линейке 1.5 появилась замечательная вещь – создание SEF ссылок стандартным образом, без использования сторонних компонентов. В компонентах за поддержку данной возможности отвечает специальной файл router.php, в стандартных он существует, но не все разработчики сторонних компонентов включают эту возможность в свои расширения. Для активации этой прекрасной опции необходимо включить три переключателя (скрин и примеры ниже) и переименовать файл htaccess.txt в .htaccess (да да, именно так - с точкой вначале. Стандартный файловый менеджер windows "explorer" может не позволить этого сделать, тогда следует использовать сторонние менеджеры - TotalComm-r, Far, DOpus и подобные). При этом если мы используем все три опции – необходимо чтобы на сервере была поддержка mod_rewrite (убедиться можно посмотрев страницу «админка – помощь – информация о системе - информация PHP» либо обратиться в службу поддержки хостинга)
Примеры для каждого из вариантов
С выключенным SEF ссылка на блог категории и конечный материал из этой ленты имеют следующие адреса. Ниже мы поочередно включаем каждый переключатель и наблюдаем за результатом
http://domen.ru/index.php?option=com_content&view=category&layout=blog&id=1&Itemid=53
http://domen.ru/index.php?option=com_content&view=article&id=1:welcome-to-joomla&catid=1:latest-news&Itemid=53
Базовые возможности включают в себя три опции:
1 – «Включить SEO» - убираем все некрасивые параметры из ссылки http://domen.ru/index.php/menublog - ссылка на блог категории, где menublog – alias пункта меню на данную страницу http://domen.ru/index.php/menublog/1-welcome-to-joomla - страница конечного материала, где welcome-to-joomla – алиас материала а 1 соответственно его ID 2 – «Использовать mod_rewrite» - избавляемся от index.php в начале ссылки http://domen.ru/menublog - ссылка на блог категории http://domen.ru/menublog/1-welcome-to-joomla - страница материала 3 - «Добавить суффикс к URL» - добавляем окончание страниц как html http://domen.ru/menublog.html - страница блока категории http://domen.ru/menublog/1-welcome-to-joomla.html - страница материала
Частые вопросы, связанные с стандартным SEF
Почему у меня ссылка имеет вид http://domen.ru/2009-10-22-22-40-41.html
По умолчанию если не прописан алиас\псевдоним для объекта – в таком формате подставляется дата его создания. Чтобы избежать – необходимо руками создавать алиасы (на латиннице) либо использовать соответствующий плагин автоматической транслитерации названий. См. ссылки в конце темыЧто такое алиас (alias), он же псевдоним?
При создании\редактировании каждого объекта движка (раздел, категория, материал, пункт меню) рядом с полем "Заголовок" есть поле ввода алиаса\псевдонимаЧто за цифры подставляются перед алиасом:
Это ID раздела\категории\материала, насколько понимаю сделано для предотвращения создания одинаковых страниц. Для избавления для стандартных компонентов существует плагин HP Router (есть некоторые проблемы, описаны по ссылке ниже)
Поставил сторонний компонент а в нем адреса получаются вида http://domen.ru/ru/ac.html?ordering=11&letter=B
Значит данный компонент не содержит в себе файла router.php для поддержки стандартного SEF, как его написать самостоятельно – инструкция по ссылке ниже. Создается ли дополнительная нагрузка на сервер?
Да, но крайне незначительная, любой сторонний компонент SEF даст в разы большую. Ниже два примера стандартной отладочной информации для страницы типа блог категории, показывающей 5 материалов SEF выключен1 23 45 67 | Application afterLoad: 0.000 seconds, 0.28 MB Application afterInitialise: 0.119 seconds, 2.66 MBApplication afterRoute: 0.153 seconds, 3.22 MB Application afterDispatch: 0.782 seconds, 7.56 MBApplication afterRender: 1.040 seconds, 8.24 MB Использование памяти 8687272Запросов 14 |
1 23 45 67 | Application afterLoad: 0.001 seconds, 0.28 MB Application afterInitialise: 0.122 seconds, 2.66 MBApplication afterRoute: 0.163 seconds, 3.22 MB Application afterDispatch: 0.878 seconds, 7.61 MBApplication afterRender: 1.161 seconds, 8.35 MB Использование памяти 8802200Запросов 14 |
Меня не устраивает функционал стандартного SEF
Тогда остается использовать сторонние расширения, подробнее с ними можно ознакомиться по ссылке http://joomlaforum.ru/index.php/board,108.0.htmlДополнительные ссылки:
Как создать router.php в своем компонентеПлагин HP Router - убираем ID из ссылкиПлагин ukr_rus_allias транслит заголовков материалов J1.5Mod_rewrite – что это такоеКирилические ссылки в стандартном SEFПодборка расширений для SEF на extensions.joomla.orgblog.pbelkov.net