Рейтинг:  0 / 5

Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна
 

При переносе сайта с Joomla 1.5 или Joomla 2.5 на Joomla 3 очень часто возникают сложности в сохранении ЧПУ-ссылок, которые работали на старой версии сайта. Их тоже нужно зачастую сохранить, ведь они были проиндексированы в поисковых системах и могут иметь хороший вес (PR). Многие, как и я не хотят больше использовать тяжёлые для сайта сторонние расширения для создания ЧПУ-ссылок, поэтому ищут возможности создать такие же точно ссылки, которые создаются такими расширениями, но с помощью встроенного функционала данного популярного движка.

Настроить ссылки в Joomla 3.0

Для того, чтобы создать ЧПУ-ссылки на Джумла 3-й версии следует проделать несколько правок на сайте, но незначительных. Возможно, скоро разработчики сделают изменения в ядре движка, что позволит делать красивые ссылки прямо в настройках админки, и наши правки можно будет быстро и бесследно удалить с кода.

Убрать ID из ссылок

Для начала убираем ID из ссылок на статьи и материалы. ID играет важную роль — с его помощью будут создаваться даже материалы с одинаковыми заголовками, если его убрать, два материала с одним заголовком создать не получится (актуально для новостных сайтов и сайтов с очень большим контентом). Поэтому следует подумать, а точно ли вам нужно убирать эти цифры из ссылок? Если да, то вот решение. В файл корень_сайта/administrator/components/com_content/config.xml нужно добавить следующие строки:


<field name="sef_advanced_link"
type="radio"
default="1"
label="SEF: Удалить ID материала в ссылке?"
description="Удалить ID материала в ссылке?">
<option value="0">JNO</option>
<option value="1">JYES</option>
</field>

Но это ещё не всё! В том же файле нужно закомментить код:

if (strpos($segments[0], ':') === false)
{
$vars['view'] = 'article';
$vars['id'] = (int) $segments[0];

return $vars;
}

Уже закомменченный код должен выглядеть так:

/*
if (strpos($segments[0], ':') === false)
{
$vars['view'] = 'article';
$vars['id'] = (int) $segments[0];

return $vars;
}
*/

Затем не забудьте очистить кеш, зайти в настройки материалов и поставить галочку, что нужно ID из ссылок убирать. Если способ не сработал или по ссылкам на какие-либо материалы сервер или CMS выдаёт 404 ошибку, нужно воспользоваться другими способами, которые отлично описаны на сайте Joofaq.ru, на котором просто и подробно описаны все способы удаления цифр из URL в Joomla 2.5 и Joomla 3.

Создание ЧПУ-ссылок

Для создания красивых ссылок SEF в Joomla 3 необходимо понимать структуру их формирования. А формируются они обязательно через меню, поэтому если нужны красивые URL, необходимо помнить об этом и для каждой ссылки создавать правильный тип пункта меню с нужным псевдонимом (или алиасом, на английском — это alias, который и будет нашей ссылкой. Если вам нужно, чтобы материал в конце имел расширение .html, необходимо в System-Global Configuration во вкладке Site включить пункт Adds Suffix to URL. Правда, теперь .html будет добавлять не только к материалам, но и к категориям. Для того, чтобы категории были на конце со слешем я переименовала файл htaccess.txt в .htaccess и перенаправила в нём 301 редиректом ссылки категорий на конце с .html на /, что, конечно же, не совсем удобно и правильно, но зато работает, а если нужно будет удалить, придётся просто подправить файл .htaccess и удалить из него все ненужные 301 редиректы.

Теперь для формирования таких же ссылок, что у вас были на старой версии CMS, необходимо построить меню таким же образом. Например, создаётся два меню: одно для формирования ссылок, а второе меню необходимо для отображения на сайте (оно должно состоять из разделителей и псевдонимов). В первом меню необходимо создать все нужные пункты меню с прописанными в них ссылками (алиасами), с необходимым уровнем вложенности. Например, если нужна ссылка /section/category/stranica.html, то необходимо создать пункт с алиасом "section", в него вложить пункт меню "category" (то бишь, для пункта меню с алиасом "category" указывается в качестве родителя пункт "section"), а уже в него вкладывается "stranica.html" (с родителем "category"), либо выбирается пункт "Материалы категории" и они подвахтывают все материалы из выбранной вами категории. Таким нехитрым, но очень нудным способом и создаётся необходимая структура ссылок, которая была на старой версии сайта или которая вам необходима для создания новых урлов.

Второе меню формируем таким образом, каким оно нам необходимо на сайте для его посетителей. Уровни вложенности можно делать любые. Главное помнить, что в этом меню нужно использовать тип пункта меню "Псевдоним", найти его можно по пути: Menu Item Type=>System Links=>Menu Item Alias. Поле Алиас (Alias) в данном типе меню должно быть пустым, ссылку на меню выбирайте из меню первого, ссылка будет таким образом подтягиваться именно из первого указанного меню. Вот так создаётся нужная иерархия или структура SEF ссылок в Joomla 3.

Успехов и удачи в работе с любимым движком!