- Как включить 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, т.е. идентификатор пункта меню определенного для данной ссылки. Как вы знаете пункт меню управляет расположением модулей. И если вдруг вы захотите это проверить, то просто попробуйте менять это число - конфигурация модулей (если она вообще динамична) будет меняться.
Похожий материал
- Чем удобны шаблоны сайтов на Joomla?
Ни для кого не секрет, что в наше современное время существует огромное количество людей и компаний, которым необходимо создавать сайты в сети интернет. Конечно, вы должны...
- Общие вопросы использования функционала
Как сделать что бы пользователи регистрировались без активации аккаунтов. Как не требовать от них обязательного e-mail адреса? Я изменяю настройки в модулях, компонентах,...
- Хаки и дополнения
Как мне включить в RSS картинки. В статье они есть, а в стандартном компоненте RSS они вырезаются Как в компоненте com_weblinks сделать, что бы выдавалась прямая ссылка Как... - Различные вопросы по web технологиям
Как вставить звук на веб-страницу? Скажите, а можно ли повторить сайт ZZZ.CC при помощи Joomla? Как отправлять SMS при помощи Joomla?
- Подробности
- Опубликовано: 20 Апрель 2010