Отключение ID материала в адресной строке Joomla
Будем работать с файлом :
ваш_сайт/components/com_content/router.php
Находим строку (~ 27 строка):
$advanced = $params->get('sef_advanced_link', 0);
И меняем её на:
$advanced = $params->get('sef_advanced_link', 1);
Далее находим строку (в Joomla 2.5 ~ 228 строка, в Joomla 3 ~ 250):
$advanced = $params->get('sef_advanced_link', 0);
И меняем её на:
$advanced = $params->get('sef_advanced_link', 1);
Находим строку с кодом(в Joomla 2.5 ~ строка 228, в Joomla 3 ~ строка 272) :
if (strpos($segments[0], ':') === false) { $vars['view'] = 'article'; $vars['id'] = (int) $segments[0]; return $vars; }
И закомментируем ее или удаляем. Теперь ссылки на Вашем сайте будут отображаться без ID материалов.
Однако в Joomla 3 могут появиться ошибки 404 при использовании данного способа.
Если при переходе по ссылкам без ID у Вас возникает 404 ошибка, то ищем в файле :
ваш_сайт/components/com_content/router.php
(~ строку 376):
where($db->quoteName('alias') . ' = ' . $db->quote($db->quote($segment)));
И меняем её на:
where($db->quoteName('alias') . ' = ' . $db->quote($segment));
Теперь ссылки должны работать и отображаться корректно и без ошибок.