Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 6 Ответов
  • 1460 Просмотров
*

kolio

  • Захожу иногда
  • 91
  • 11 / 4
сделал 404 страницу как описано в  http://joomlaforum.ru/index.php/topic,219664.new.html, на сайте SEF отключили
при вводе вместо
http://________/index.php?option=com_content&view=article&id=5419&catid=59&Itemid=15
явно ошибочную страницу
http://________/index.php?option=com_conte5nt&view=article&id=5419&catid=59&Itemid=15

выдает страницу ошибки, и 404й код
то есть всё ОКЕЙ

НО! если ввести
например типа http://_________/sdfsdfsdf/sdfsdfsdf.html
выдает главную страницу сайта, и код 200

может кто знает, это настройки сайта? или hatcess? или еще чего-то?

ну или может кто подскажет как доделать htacess так чтобы - если в URL есть ".html", то, чтобы он или выдавал браузеру код 404
*

voland

  • Легенда
  • 11030
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Re: Не срабатывает страница 404
« Ответ #1 : 01.04.2014, 15:52:22 »
А если временно включить SEF и переименовать htaccess.txt -> .htaccess - это решает проблему?
*

kolio

  • Захожу иногда
  • 91
  • 11 / 4
Re: Не срабатывает страница 404
« Ответ #2 : 01.04.2014, 16:08:07 »
.htaccess такой и есть. (.txt почти нигде не юзается на серваках)
---------------------------
включил SEF + плагин SEF - перебросило на 404 созданную страницу
но при этом и SEF ссылки  стали - что мне не нужно

то есть Joomla как то определила, что это не SEF ссылка
*

kolio

  • Захожу иногда
  • 91
  • 11 / 4
Re: Не срабатывает страница 404
« Ответ #3 : 02.04.2014, 10:15:10 »
скорее всего придется смотреть код, как SEF плагин определяет, что ссылка неверная, после чего дергает файл error.php в шаблоне
и эту часть кода переместить в какой то из плагинов,

или доработать плагин SEF, чтобы он был полурабочем состоянии, типа- служил чисто для определения бракованной ссылки и перевода на 404 и всё
*

kolio

  • Захожу иногда
  • 91
  • 11 / 4
Re: Не срабатывает страница 404
« Ответ #4 : 02.04.2014, 11:23:43 »
всё оказалось гораздо проще
отключил плагин SEF, но включил настройку SEF в параметрах сайта
и сделал кастом страницу 404 с кодом ответа 404

всё равно SEF ссылки генерсятся. хрень какая-то
получается сам движок Joomla отрабатывает корректность URL

нужно только найти где он делает проверку на то, что SEF URL битый и перекидывает на error.php
« Последнее редактирование: 02.04.2014, 14:08:12 от kolio »
*

kolio

  • Захожу иногда
  • 91
  • 11 / 4
Re: Не срабатывает страница 404
« Ответ #5 : 02.04.2014, 14:46:08 »
бред какой то
при включенной параметре SEF и дергании левой ссылки - имя компонента пустой! согласен
а при выключенном SEF - com_content. я так понимаю он ставит по дефолту, так как default menu ссылается на "com_content - Главная страница"

а это в свою очередь делает функция
Код
$option = JRequest::getCmd('option');
в index.php

а getCmd даргает в свою очередь getVar
где уже и происходит присвоение com_content

по сути нужно сделать проверку, что если идет запрос getvar('option') и оно решило в конце, что это com_content, но URI нет фразы com_content, и URI не равно '/'
 и тип запроса = GET, то в этом случае случае просто делать пустой ответ
*

kolio

  • Захожу иногда
  • 91
  • 11 / 4
Re: Не срабатывает страница 404
« Ответ #6 : 02.04.2014, 15:27:58 »
в итоге я забрел в дебри.
аж вот сюда
Код
includes/router.php

и тут есть заМУчательная функция
Код
function _parseRawRoute(&$uri)

и там я просто добавил проверку на то, что путь не является корневым
Код
//Handle an empty URL (special case)
if(!$uri->getVar('Itemid') && !$uri->getVar('option') && !$uri->_path)
{
$item = $menu->getDefault();
if(!is_object($item)) return $vars; // No default item set

//Set the information in the request
$vars = $item->query;

//Get the itemid
$vars['Itemid'] = $item->id;

// Set the active menu item
$menu->setActive($vars['Itemid']);

return $vars;
}

и если набирать в браузере URL который яво бредовый, то перекидывает на error.php , который в корне шаблона
и там уже:

Код
<?php
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" dir="<?php echo $this->direction; ?>">
<head>
</head>
<body>
<?php
if (($this->error->code) == '404') {
header("HTTP/1.0 404 Not Found"); /*добавлено после учёта комментариев - отправляет код ошибки для поисковика*/
echo file_get_contents('http://САЙТ/index.php?option=com_content&view=article&id=66'); /*открывает страницу ошибок для пользователя*/
exit;
}
?>
</body>
</html>

Спасибо voland за наводку, и мне за поиск проблемы :)
« Последнее редактирование: 02.04.2014, 19:33:38 от kolio »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Не работает страница XML выдает ошибку: This page contains the following errors

Автор vitaliywolf

Ответов: 20
Просмотров: 11984
Последний ответ 07.05.2020, 22:24:16
от sivers
Как сделать, чтобы внутренняя страница не показывалась в качестве главной?

Автор kpripper

Ответов: 21
Просмотров: 1977
Последний ответ 19.03.2016, 16:51:11
от flyingspook
Не отображаются страница материалов

Автор MOZ

Ответов: 8
Просмотров: 1365
Последний ответ 28.02.2016, 19:50:37
от effrit
Одна страница доступна по разным адресам

Автор sinplus

Ответов: 4
Просмотров: 1439
Последний ответ 17.02.2015, 10:49:25
от sinplus
[Инфо] Собственная страница - Ошибка 404. Ответ

Автор css_ufa

Ответов: 12
Просмотров: 3281
Последний ответ 01.04.2014, 11:44:12
от kolio