Joomla и SEF
- Как включить SEF, как его использовать
- Ошибка: "Not Found The requested URL /content/view/1/21/ was not found on this server"
- Как включить mod_rewrite на локальном сервере
- Как проверить, что mod_rewrite вообще работает
- Как создать свой 404-файл в Joomla
- В стандартном SEF в конце адреса появляется непонятное число, что оно означает (/content/view/123/ЧИСЛО/)
По умолчанию он выключен. Нужно выполнить следующие условия, для того что бы его включить:
* Сайт должен работать на apache (в случае работы на IIS надо искать аналоги mod_rewrite для этого веб-сервера)
* mod_rewrite должен быть включен и разрешен (это забота хостинговой компании)
* Должно быть разрешено перекрытие конфигурации апача в пользовательских файлах конфигурации .htaccess (AllowOverride)
* Переменная $mosConfig_sef в configuration.php должна быть равна единице (=1) (кстати, то же самое можно сделать и в глобальной конфигурации на вкладке SEF) и файл htaccess.txt должен быть переименован в .htaccess (под windows проводником это не сделать, поэтому лучше использовать far или другой файловый менеджер)
* Если джумла находится не в корне сайта (НЕ www.site.ru, а например в www.site.ru/joomla/), то для нормального функционирования 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;
}
(копирайты на хак принадлежат smart'у ссылка)
Таким образом вы включите встроенную систему ЧПУ. Для встроенных-компонентов ссылки будут красивыми, нечто вроде /content/view/1/2, для сторонних же они будут выглядеть примерно так: /component/option,com_contact/Itemid,3/. И это не проблема Joomla, просто она знать не знает о ваших компонентах, которые вам вдруг захотелось поставить. Для более красивых адресов надо ставить другие SEF-компоненты. Но и этих компонентов мало, надо что бы в них были соответствующие плагины для ваших компонентов.
2. Ошибка: "Not Found The requested URL /content/view/1/21/ was not found on this server"
Нужно отключить SEF в глобальной конфигурации или настроить его правильно. Как его настроить - описано выше.
3. Как включить 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)
4. Как проверить, что mod_rewrite вообще работает
В своем файле .htaccess впишите строки
Redirect /joom.html http://joom.ru
Затем в адресной строке браузера набирайте адрес
http://адрес_домена/joom.html
Если брайзер пошел на Joom.ru - значит mod_rewrite работает и SEF-ссылки ДОЛЖНЫ работать на Joomla-сайте. Если выдает 404 ошибку, то см. выше.
5. Как создать свой 404-файл в Joomla
404-файл, это файл, который будет выводиться пользователю, если запрашиваемая страница не найдена. Возможны несколько вариантов действий.
* Если не используется SEF-преобразование адресов. В данном случае можно в .htaccess написать
ErrorDocument 404 /404.html
Путь "/404.html" указывается от корня сервера, и если Joomla стоит не в корневой директории, то надо писать полный путь "/директория/404.html". Файл 404.html вы должны создать самостоятельно. Если вы хотите, что бы за эту ошибку отвечала какая-то страничка в общем дизайне Joomla, а не какой-то файлик, то можно создать статическую страничку, узнать ее ID и сформировать ссылку на нее
ErrorDocument 404 /index.php?option=com_content&task=view&id=123
* Если используется SEF, встроенный в Joomla, то за эту ошибку отвечает файл 404.php в папке templates. Но. Это не всегда срабатывает, поэтому для надежности надо в .htaccess прописать страницу с ошибкой.
* Если используется сторонний SEF-компонент, то чаще всего в нем можно определить такую страницу в его настройках.
* Кроме всего этого в языковом файле определена константа _NOT_EXIST, которую тоже можно подредактировать под себя (например поставить редирект на нормальную 404-страницу)
6. В стандартном SEF в конце адреса появляется непонятное число, что оно означает (/content/view/123/ЧИСЛО/)
Это число всего лишь Itemid, т.е. идентификатор пункта меню определенного для данной ссылки. Как вы знаете пункт меню управляет расположением модулей. И если вдруг вы захотите это проверить, то просто попробуйте менять это число - конфигурация модулей (если она вообще динамична) будет меняться.
Similar material
Самые распространенные ошибки и вопросы
При установке возникает ошибка:Я выключил сайт, а он все-равно отображается. Почему?Я захожу на сайт, а мне говорят, что он закрыт. Надпись вроде «Сайт закрыт», «Site...
При установке возникает ошибка:Я выключил сайт, а он все-равно отображается. Почему?Я захожу на сайт, а мне говорят, что он закрыт. Надпись вроде «Сайт закрыт», «Site...
Неправильная работа заложенного функционала
Не пускает в админку.Вы видите сообщение «Вы не авторизованы что бы видеть этот ресурс. Вам требуется зарегистрироваться» (eng: «You are not authorized to view this...
Не пускает в админку.Вы видите сообщение «Вы не авторизованы что бы видеть этот ресурс. Вам требуется зарегистрироваться» (eng: «You are not authorized to view this...
WYSIWYG редакторы
Я не могу редактировать содержимое в WYSIWYG-редакторе, редактор не работаетУ меня косяк с визульным редактором. Не правильно работает, не правильно отбражается. Глючит по...
Я не могу редактировать содержимое в WYSIWYG-редакторе, редактор не работаетУ меня косяк с визульным редактором. Не правильно работает, не правильно отбражается. Глючит по...
Protect your Joomla
This article will be reviewed by the main steps to be taken to protect against hacker attacks and other illegitimate actions with your site and FTP-access to it.
This article will be reviewed by the main steps to be taken to protect against hacker attacks and other illegitimate actions with your site and FTP-access to it.