JoomlaOn-line - быстрое и эффективное изучение Joomla Выпуск 20
Добрый вечер
Сегодня мы рассмотрим с вами тему
SEF.
Как использовать SEF? Что такое
SEF?
Во
всех CMS по умолчанию имеется встроенная функция генерации ЧПУ (человекопонятные УРЛ-ссылки),
от английского - SEF URL (search engines friendly url).
Зачем нужна SEF?Если кратко,
то для придания понятности ссылки для человека, и дружественность для
поисковых систем.
{loadposition modintext05}
Данная функция
позволяет автоматически преобразовывать ссылки в сайтах из динамического вида:
По умолчанию он выключен. Необходимо выполнить несколько
условий, для того что бы его включить:
▪
Сайт должен работать на 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, т.е. идентификатор пункта меню определенного для
данной ссылки. Как вы знаете пункт меню управляет расположением модулей. И если
вдруг вы захотите это проверить, то просто попробуйте менять это число —
конфигурация модулей (если она вообще динамична) будет меняться.