Joomla 3.8 404 ошибка по неверным ссылкам

У меня проблемы со ссылками в Joomla 3.8.
У меня есть ссылка как Http: //mysite.loc/my-category/my-subcategory/89 и это правильная ссылка для материала с идентификатором 89.
Но когда я вхожу Http: //mysite.loc/my-category/my-subcategory/89asdasdasdasd
Joomla покажи мне эту страницу и ответь 200 / ок. Как я могу обработать это и показать ошибку 404 для URL, как это? SEF включен

2

Решение

Да, именно так ведет себя Joomla. Когда у вас есть что-то вроде yoursite.com/my-category/123-blablablaJoomla загрузит статью, имеющую 123 в качестве удостоверения личности. На самом деле статья с ID 123 даже не должен быть в my-category категория. Это одна из странных вещей в Joomla.

Решением этой проблемы является удаление идентификатора статьи из URL, как описано Вот. Имейте в виду две вещи: 1) это базовая модификация и 2) инструкции о том, как это сделать, могут немного отличаться для 3.8. +.

0

Другие решения

Я нахожу решение его работы для меня.
В классе ContentRouterRulesLegacy найдите метод parse, и куда поместите его запрос к db для выполнения статьи info.

    $query = $db->getQuery(true)
->select($db->quoteName(array('alias', 'catid')))
->from($db->quoteName('#__content'))
->where($db->quoteName('id') . ' = ' . (int) $id,'AND')
->where($db->quoteName('alias') . ' = ' . "'$alias'");

$db->setQuery($query);
$article = $db->loadObject();

if ($article)
{
if ($article->alias == $alias)
{
$vars['view'] = 'article';
$vars['catid'] = (int) $article->catid;
$vars['id'] = (int) $id;

return;
}
}
else
{
header('HTTP/1.0 404 Not Found');

JError::raiseError(404, 'JGLOBAL_RESOURCE_NOT_FOUND');

exit(404);
}
0

По вопросам рекламы [email protected]