Очень часто получается так, что URLы не устраивают пользователей. Но это и понятно, ведь мы используем простую систему построения URLа. Первое, что надо понимать- это наша политика относительно ЧПУ.
Мы ни в коем случае не будем делать или внедрять функционал, который повлечет за собой необходимость выполнения дополнительных запросов к базе и, как следствие, понижение производительности.
Еще когда мы делали расширения для Joomla 1.0 на сайте JoomlaEquipment, у нас был один из самых популярных SEO компонентов, называемый JPromoter. Так что мы это все проходили и знаем, какие последствия могут постигнуть человека просто за его желание иметь ссылки покрасивей.
Итак, при оптимизации пользуйтесь главным правилом.
Ссылки делаются не для людей, а для поисковых систем
Это чудесно, когда ссылки хорошо организованы. Но в конечном итоге важным является то, как эту ссылку расценивает поисковая система. Посмотрите на ссылки в youtube, facebook. Не такие уж они и красивые. Там есть в начале несколько ключей, но потом идет полный хаос.
http://www.facebook.com/photo.php?fbid=10200538856655421&set=a.10200538848215210.2200831.1278478636&type=3&src=http%3A%2F%2Fsphotos-h.ak.fbcdn.net%2Fhphotos-ak-ash4%2F421507_10200538856655421_354195702_n.jpg&size=640%2C960
Это ссылка на картинку пользователя. Или вот посмотрите ссылку поиска Google при поиске в Хроме из адресной сроки
https://www.google.com/search?q=find+me&aq=f&oq=find+me&aqs=chrome.0.57j60l3j0l2.1372&sourceid=chrome&ie=UTF-8
Даже близко не
https://www.google.com/search/q/find+me/
Да и кому какое дело?
Вывод: Принимая решения, мы отдаем их в пользу важности поисковой оптимизации, а не просто красивого вида для пользователя
Это одна из самых требуемых возможностей. Но вот в чем дело. Если у нас есть URL типа
http://www.mintjoomla.com/blog/item/226-cobalt-russian.html
То 226 уже содержит идентификатор записи. И мы легко его получим прямо из URL.
А если у нас URL типа
http://www.mintjoomla.com/blog/cobalt-russian.html
То чтобы понять, что же нам надо показать, необходимо сделать запрос к базе данных.
Но для создания таких ссылок нужно сделать 1-2 запроса. Первый- проверить, есть ли такой URL в базе. Второй- добавить, если такого нет. Представьте, что у нас на странице 100 ссылок? Это как минимум 100 дополнительных запросов. Я знаю людей, у которых количество запросов увеличивается как минимум на 200, а задержка- на 2 секунды, если они включат подобно организованный роутинг.
Именно поэтому мы не будем встраивать подобных систем в Кобальт. Хотя это вас никак не ограничивает. Вы можете воспользоваться сторонним ЧПУ компонентом, как например MijoSEF, который имеет интеграцию с Кобальтом.
Вывод: Никогда не следует жертвовать производительностью вашего сайта ради того, что ВЫ считаете красивой ссылкой, так как при понижении скорости работы сайта Вы потеряете больше, чем приобретете
Но все-таки кое-что Вы можете сделать. Кобальт использует систему ключей для построения URL. Это значит, что первый параметр- это ключ, по которому мы определяем, что это за URL и как его проанализировать.
Давайте разберем несколько ссылок.
http://www.com/community/depot/category-items/2-3dp-extensions/2-integrations.html
http://www.com/community/depot/item/2-integrations/205-cobalt-extension-for-mijosearch.html
Здесь
depot
это часть схемы меню Joomla, то есть алиас вашего меню.category-items
и item
это и есть ключ2-3dp-extensions
это раздел2-integrations
это категория205-cobalt-extension-for-mijosearch
это статьяКлючи- это текстовые переменные, причем языковые. Это значит, что на русском эти ключи будут русские. Если Вы хотите их поменять или сократить, Вы можете перезапись эти переменные в Joomla -> Extensions -> Language Menager -> Overrides
Вот полный список ключей, которые Вы можете переназначить.
SEF_CATITEMS
category-itemsSEF_VWITEM
listSEF_FORM_ADD
submitSEF_FORM_EDIT
editSEF_ITEM
itemSEF_ITEMS
itemsSEF_USERCATEGORY
user-categorySEF_USERITEM
user-itemsSEF_USER_ITEM
user-itemЧасто бывает так, что имя раздела совпадет с именем ссылки. Например, у Вас есть раздел ID 3 forum
и есть ссылка forum
. И когда Вы перейдете в категорию, ссылка может быть примерно такой
http://site.com/forum/3-forum/5-general.html
Здесь мы видим forum
2 раза. Первый- это алиас элемента меню, а второй- это алиас раздела. Вы не можете этого изменить . То есть решения, чтобы убрать что-то из ссылки нет. Но Вы можете это использовать для своей выгоды. Мы знаем, что слова в ссылке очень важны при ранжировании поиска. Так что мы можем положить туда что-то важное. Например, если мы изменим алиас раздела с forum
на community
то получим дополнительное полезное слово в ссылке.
http://site.com/forum/3-community/5-general.html
Cobalt дает вам возможность менять алиасы как для разделов, так и для категорий или статей. Так что Вы можете просто использовать это для своей выгоды, не меняя положения вещей и сохраняя высокую скорость работы сайта.
У Cobalt есть система выбора фала роутинга. Вообще в джумле стандартным способом роутин осуществляется в файле route.php
в корневой папке компонента. В кобальте же этот файл лежит в папке routers
. Вы можете его скопировать и дать ему новое имя. Потом выберите это имя в глобальных настройках Cobalt.
Вы можете внести любые изменения в этот файл. Убрать алиасы или вообще сделать ЧПУ на основе запросов к базе без ID в урл.
Вот посмотрите и послушайте что думает сам Гугль о сеф ссылках.