ЧПУ ссылки Joomla. Мануал по настройке

9 ноября 2011 | Автор: zkzakhar | Теги:

Настраиваем ссылки для JoomlaДобрый день, первые читатели моего блога! Долго думал с какой статьи начать, и столько же времени настраивался на работу.

Пару недель назад мне показали сайт, свёрстанный на чистом html и сказали: «надо поставить на Joomla». Казалось бы делов-то! Но есть одно «но»: сайт по определённым запросам висит в ТОП 10 выдачи Гугла, поэтому обходиться с ним требовалось осторожно. И как мне сказал работодатель, — «бабла в него всадили будь здоров». На сайт было куплено огромное количество внешних ссылок, и создавая его по новому — требовалось сохранить всю текущую ссылочную массу без изменений. Сегодня я и расскажу, каким же образом выглядит настройка ссылок joomla. А так же много чего другого. Надеюсь статья будет вам полезной.

Известно, что если сайт написан на html, то ссылка на него будет иметь вид: http:/site.ru/filename.html (при условии, что файл filename.html расположен в корневом каталоге сайта на вашем хостинге). Итак, после установки CMS Joomla, и публикации первого поста в ней, мы видим ужасную картину в адресной строке, что-то типа
http://site.ru/index.php?option=com_content&view=article&id=1:2011-11-02-08-3810&catid=1:kategoria1
Привлекательно, не правда? И так, из неё нам надо получить ссылку вида http://site.ru/filename.html. Поехали:

Шаг 1. В админке нашего сайта заходим Сайт-Настройки. С правой стороны есть модуль под названием «Поисковая оптимизация (SEO)».

Шаг 2. Кликаем «Да» напротив первого пункта (Включить SEF-ссылки (ЧПУ) ) и смотрим что же у нас получилось:
http://site.ru/index.php/component/content/article/1-kategoria1/1-2011-11-02-08-38-10.
Уже лучше. Такой же длинный, но более понятный текст.

Тут же хочу обратить внимание на то, что 1-2011-11-02-08-38-10 —  это псевдоним нашей статьи. Что такое псевдоним – об этом мы поговорим чуть ниже.

Шаг 3. Нажимаем «Да» напротив второго пункта (Использовать mod_rewrite). Так же меняем в корневой папке нашего сайта имя файла с htaccess.txt на .htaccess Обратите внимание, что точка впереди обязательна! Если вы работаете на локальной машине под windows, то изменить название на требуемое у вас не получиться. Поэтому я менял сразу на хостинге — там с этим проблем нет. Итак, что мы видим теперь:
http:/site.ru/component/content/article/1-kategoria1/1-2011-11-02-08-38-10.
Различие с прошлым пунктом-пропал промежуточный index.php

Шаг 4. Что бы получить ссылку вида http://site.ru/filename нам надо создать пункт меню, который будет ссылаться на нашу статью. Выбираем из предложенного нам списка «Одна статья» и в поле «Псевдоним» вписываем filename. Готово. Ссылка на нашу статью появилась в выбранном нами меню, и её адрес выглядит так, как мы и хотели. И ещё важный момент: если эта статья, кроме меню, стоит ещё и на главной странице, её адрес будет такой же как и в вашем меню (если у поста существует кнопка «Читать полностью» или название статьи является ссылкой). То есть адрес на ссылке «Читать полностью» будет не
http://site.ru/component/content/article/1-kategoria1/1-filename, а http:// site.ru/filename.

Лично у меня появилось пару вопросов после того, как я сам разобрался в вышенаписанном:

4.1 Мне не надо добавлять статью ни в какое меню, и тем не менее я хочу такую же красивую чпу ссылку joomla. Что делать? Я решил делать так: создаю меню, которое в дальнейшем не буду привязывать ни к одному модулю, то есть на сайте его видно не будет (пример). И в это меню добавляю нужную статью с указанием нужного мне псевдонима. Таким образом, после проделанной операции, если пост выставить на главную страницу с кнопкой «Читать далее», то путь к этой странице будет что надо.

4.2 Если в вашем меню есть пункт, который ссылается на целую категорию или раздел (кто не понял о чём речь — вот скрин) в котором присутствует нужная вам статья, то ссылки на эту статью буду выглядеть следующим образом, в зависимости от того, что именно стоит в вашем меню (путь на раздел, категорию или статью).

  • ТОЛЬКО ссылка на раздел: http://site.ru/razdell/1-kategoria1/6-filename (razdell – псевдоним раздела)
  • ТОЛЬКО ссылка на категорию: http://site.ru/kategoria1/6-filename (kategoria1 — псевдоним категории)
  • ТОЛЬКО ссылка на статью: http://site.ru/filename (filename — псевдоним статьи)

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

  • Если мы имеем в наших меню ссылку на раздел и ссылку на саму статью, то общая ссылка на статью будет иметь вид http://site.ru/filename.
  • Если мы имеет в наших меню ссылку на раздел и ссылку на категорию, то общая ссылка на статью будет иметь вид http://site.ru/kategoria1/6-filename

Надеюсь суть вы поняли.

Шаг 5. Добавление суффикса. И последний этап по формированию нужной нам joomla чпу ссылки. Сразу начну с примера: на том html сайте (за который я писал в самом начале этой статьи) были файлы, которые имели расширение как *.html так и *.htm. По правде говоря, так быть не должно, это ошибка самих создателей сайта — требуется сначала определится с каким расширением будешь работать, и делать потом их одинаковыми, но выбирать не приходиться, поэтому надо думать как решить и эту задачу.
И так, что бы наши статьи имели вид http://site.ru/filename.html (а именно к такому виду мы и задавались прийти к концу статьи) стоит активировать третий пункт модуля «Поисковая оптимизация (SEO)» «Добавить к URL суффикс». И как бы уже вроде всё готово. «Как бы» — потому что всё готово с расширением «html», но не «htm»! И для добавления этого суффикса нам придётся лезть в код.
На хостинге заходим в корневую папку нашего Joomla-сайта и далее /includes/router.php
Если до этого ничего в этом файле не менялось, то ищем строки 58-62, там находиться код:

if($suffix = pathinfo($path, PATHINFO_EXTENSION))
{
$path = str_replace(‘.’.$suffix, », $path);
$vars[‘format’] = $suffix;
}

В промежуток этого кода, между строками «$vars[‘format’] = $suffix;» и «}»
Вставляем следующий отрезок кода:


if ($suffix == ‘htm’) {
$path = str_replace(‘.’.$suffix, », $path); //pair of single quotes inserted
$vars[‘format’] = ‘html’;
} else {
$path = str_replace(‘.’.$suffix, », $path); //pair of single quotes inserted
$vars[‘format’] = $suffix;
}

Теперь, после того как этот код был вставлен, переходим на строку 103 (либо строка 94 без вышеуказанного редактирования) и в этой строке if($format = $uri->getVar(‘format’, ‘html’)) меняем «html» на «htm».
Готово. И таким образом, наша ссылка получит сразу 2 вида! И http://site.ru/filename.htmlhttp://site.ru/filename.htm – пути идентичны и ссылаются на один и тот же документ.

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

Давайте разберёмся из каких элементов состоит эта ссылка:
http://site.ru/component/content/article/1-kategoria1/1-2011-11-02-08-38-10
Что бы сразу стало всё понятно – выкладываю скрин настроек полей «Псевдоним» на моём тестовом сайте:
Теперь опишим то, что увидели (для статей первую часть ссылки трогать не будем, она установлена по умолчанию):

1-kategoria1 – это псевдоним категории, в которой находиться наша статья. Единичка, которая стоит перед псевдонимом в ссылке — это id нашей категории (в приведённом выше рисунке это не затемнённая площадь).

1-2011-11-02-08-38-10 – это псевдоним статьи. По аналогии с категорией, здесь тоже присутствует id нашей статьи, номер которой прописан так же в начале.

Давайте теперь заменим поле «Псевдоним» в наше статьи с «2011-11-02-08-38-10» на «filename».
Результат я думаю предсказуем http://site.ru/component/content/article/1-kategoria1/1-filename
И последнее, что стоит упомянуть: если при создании раздела или категории вы поле «Заголовок» обзываете кириллическими символами, то поле «Псевдоним» прописывать надо вручную (иначе по умолчанию джумла сгенерирует довольно неприятный набор чисел). Если же поле «Заголовок» заполняется латинскими символами (включая цифры), то псевдоним повторит имя вашего заголовка.

Это один из немногих постов про CMS Joomla на моём блоге. Поэтому раз зашла такая тема, то советую сайт где можно скачать шаблоны joomla на любую тематику и на любой вкус. Рекомендую.
На сегодня всё.

Захар

[vk-share-button]