SEF в Joomla     Как использовать SEF? Что такое SEF?

     Во всех CMS  по умолчанию имеется встроенная функция генерации ЧПУ (человекопонятные УРЛ-ссылки), от английского - SEF URL (search engines friendly url).

     Зачем нужна SEF? Если кратко, то для придания понятности ссылки для человека, и дружественность для поисковых систем.

     Данная функция позволяет автоматически преобразовывать ссылки в сайтах из динамического вида:

http://joomlaon.ru/index.php?option=com_content&task=view&id=34&Itemid=51

     в статический:

http://joomlaon.ru/content/view/34/51/

     или:

http://joomlaon.ru/skreens.html

     или:

http://joomlaon.ru/Скрины

     1. Как включить SEF и начать использовать

     По умолчанию он выключен. Необходимо выполнить несколько условий, для того что бы его включить:

     Сайт должен работать на apache (в случае работы на IIS надо искать аналоги mod_rewrite для этого веб-сервера)
     mod_rewrite должен быть включен и разрешен (это забота хостинговой компании)
     Должно быть разрешено перекрытие конфигурации апача в пользовательских файлах конфигурации .htaccess (AllowOverride)
     Переменная $mosConfig_sef в configuration.php должна быть равна единице (=1)
     Файл htaccess.txt должен быть переименован в .htaccess
     Если джумла находится не в корне сайта (НЕ www.site.ru, а например в www.site.ru/joo/), то для нормального функционирования SEF надо в .htaccess расскомментировать строчку с «# RewriteBase /» (просто уберите знак # и пробел, чтобы «R» оказалась с начала строки) и вместо «/» пропишите ваш путь, в данном случае это «/joomla/» (без кавычек). Если этого не сделать, то в сервер будет выдавать ошибку «404 Not Found» на новые адреса в URL.
     Для того, что бы отключить SEF для какого-то конкретного компонента (например на SMF), надо в файле includes/sef.php в фукнции function sefRelToAbs( $string ) сразу после:

 

GLOBAL $mosConfig_live_site, $mosConfig_sef, $mosConfig_mbf_content;

     Добавить:

 if (eregi(«option=com_smf»,$string)) {
     return $string;
     }

     2. Ошибка: «Not Found The requested URL /content/view/1/21/ was not found on this server»

     При появлении данной ошибки, необходимо отключить SEF в глобальной конфигурации или перенастроить его правильно.

     3. Как включить mod_rewrite на локальном сервере

     Для включения mod_rewrite убеитесь, что в конфигурационном файле apache httpd.conf есть строки:

     AllowOverride All

     где D:/www — корень вашего веб-сервера. Эта конструкция необходима для возможности обработки всего, что понаписано в файле .htaccess, находящегося в этом каталоге и его подкаталогах. Также в httpd.conf может быть просто строка:

AllowOverride All

     Она включает обработку ВСЕХ параметров ВСЕХ .htaccess Если у вас AllowOverride None, то исправляйте на All:

LoadModule rewrite_module modules/mod_rewrite.so

     подключает сам модуль mod_rewrite (.so — расширение динамических библиотек для unix-систем, для windows чаще идут .dll-файлы, которые тоже должны присутствовать в вашем Apache).

     После настроек необъодимо убедится, что файл работает. В файле .htaccess вписать строки:

Redirect /joomlaon.html http://joomlaon.ru

     Затем в адресной строке браузера необходимо набрать адрес:

http://адрес_домена/joomlaon.html

     Если брайзер пошел на joomlaon.ru — значит mod_rewrite работает и SEF-ссылки ДОЛЖНЫ работать на Joomla-сайте. Если выдает 404 ошибку, то необходимо повторить пункты выше.

     4. В стандартном SEF в конце адреса появляется непонятное число, что оно означает (/content/view/123/ЧИСЛО/)

     Это число всего лишь Itemid, т.е. идентификатор пункта меню определенного для данной ссылки. Как вы знаете пункт меню управляет расположением модулей. И если вдруг вы захотите это проверить, то просто попробуйте менять это число — конфигурация модулей (если она вообще динамична) будет меняться.