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

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
RamzesIV Это для кого разработчики написали?
Код: php
<?php echo $this->error->getCode(); ?> - <?php echo $this->error->getMessage(); ?>
*

dzakharenkov

  • Новичок
  • 1
  • 0 / 0
Добрый день!
У меня при выводе блога категории 1 (корневая категория) выводится ошибка 404. Если выводить категории отдельно 1.1 или 1.2, то нормально. Не могу понять в чём дело? Joomla 2.5. Помогите решить проблему.
*

mark1

  • Захожу иногда
  • 394
  • 39 / 2
Добрый день!
У меня при выводе блога категории 1 (корневая категория) выводится ошибка 404. Если выводить категории отдельно 1.1 или 1.2, то нормально. Не могу понять в чём дело? Joomla 2.5. Помогите решить проблему.
Добрый! Во первых, не в тему написали, во-вторых - мало данных.. долго угадывать, что и как вы там сделали. Дайте доступ в админку, может гляну.
*

proandrey

  • Захожу иногда
  • 85
  • 1 / 0
Если взять за основу способ для J1.5-http://joomlaforum.ru/index.php/topic,113927.0.html
 можно сделать так:

1. Создаем материал с текстом об ошибке.
2. Создаем меню с ссылкой на этот материал. Например 404.html. Запоминаем эту ссылку. Если используется SEF, то запоминаем SEF-ссылку. Модуль этого меню просто не публикуем, удалять не надо. Меню создается для красоты урла, чтобы не было всяких index.php?bla-bla-bla...
3. Из папки templates/system копируем файл error.php в папку templates/Название_Вашего_шаблона.
4. В файле templates/Название_Вашего_шаблона/templateDetails.xml вписываем перечисление файла error.php. в разделе <files><filename>error.php</filename></files>.
5. Заменяем содержимое нашего файла error.php на следующее:
Код
<!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->get('code') == '404') {
header("HTTP/1.0 404 Not Found");
header('Location: error404');
exit;
}
?>
</body>
</html>
header('Location: 404.html'); - здесь вместо "404.html" пишете адрес своей страницы ошибок, тот который запомнили из меню.

Всё верно, но нужен слэш перед названием страницы ошибки, т.е. Location: /404.html
*

Kumigy

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
А можно ли как-то использовать вставки <jdoc> в error.php. Или может есть какой-то другой вариант вывести модуль меню, на странице ошибки?
*

Kumigy

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
Можно попробовать по id
Несколько модулей в 1 статье
Огромное спасибо! всё заработало.

Одна только странность наблюдается... у меня на одном сайте <jdoc> работает на странице ошибки, а на втором идентичном не работает) как так?)
*

hostodont

  • Осваиваюсь на форуме
  • 14
  • 2 / 0
http://www.joomlandia.net/joomla/page-404 еще не сложный способ. Может кому пригодится.
*

staticway

  • Захожу иногда
  • 167
  • 0 / 0
  • Мыслю простенько и со вкусом
Перепробывал все способы за исключением компонента, ерунда какая-то получается:

Если адрес страницы site/razdel1/1.html и вбить вместо 1.html - 1.htmlyuifhfhfhf - то отдается 404, если вбить 1.htm или site/несуществующий_раздел/3.php - то всё равно отдается ошибка 500, кто знает стопроцентный способ всё же?
*

samuray7

  • Захожу иногда
  • 77
  • 6 / 0
  • Хыка
Перепробывал все способы за исключением компонента, ерунда какая-то получается:

Если адрес страницы site/razdel1/1.html и вбить вместо 1.html - 1.htmlyuifhfhfhf - то отдается 404, если вбить 1.htm или site/несуществующий_раздел/3.php - то всё равно отдается ошибка 500, кто знает стопроцентный способ всё же?
Я тоже пробовал много вариантов создания страницы 404... но остановился на самом простом - сгенерировал HTML код страницы, использую часть кода от стандартного error.php, вставил в него небольшую примочку и потестил - работает как часы, да еще на почту кидает мне все попытки пролезть по моему сайту ( отчет по IP, что вводили в строку запросы и т.д.)
*

strannik-yura

  • Давно я тут
  • 511
  • 44 / 1
  • :)
Я тоже пробовал много вариантов создания страницы 404... но остановился на самом простом - сгенерировал HTML код страницы, использую часть кода от стандартного error.php, вставил в него небольшую примочку и потестил - работает как часы, да еще на почту кидает мне все попытки пролезть по моему сайту ( отчет по IP, что вводили в строку запросы и т.д.)
поделитесь решением
*

staticway

  • Захожу иногда
  • 167
  • 0 / 0
  • Мыслю простенько и со вкусом
Цитировать
Я тоже пробовал много вариантов создания страницы 404... но остановился на самом простом - сгенерировал HTML код страницы, использую часть кода от стандартного error.php, вставил в него небольшую примочку и потестил - работает как часы, да еще на почту кидает мне все попытки пролезть по моему сайту ( отчет по IP, что вводили в строку запросы и т.д.)

Действительно поделитесь полным решением пожалуйста, многим пригодится.
*

samuray7

  • Захожу иногда
  • 77
  • 6 / 0
  • Хыка
Предупреждаю, что не профессиональное решение данной проблемы и выполнено методом научного тыка. Пробовал плагины - не понравилось или не работало, решил сделать проще.
Итак, версия Joomla 2.5
1. Создал материал с содержанием того, что хотел вывести на старнице 404 - т.е. блоки навигации, шапка, футер - для придания странице общего дизайна.
2. Вывел страницу на сайт - и скопировал сгенерированный код HTML.
3. Из системной папки взял error.php и взял из него только код до <head>
Код
<?php
defined('_JEXEC') or die;
if (!isset($this->error)) {
$this->error = JError::raiseWarning(404, JText::_('JERROR_ALERTNOAUTHOR'));
$this->debug = false;
}
//get language and direction
$doc = JFactory::getDocument();
$this->language = $doc->language;
$this->direction = $doc->direction;
?>
<!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; ?>">

4. Этим кодом заменил код на сгенерированном в п.2 странице HTML заголовок.
5. В код вставил примочку:
Код
<?php 
$ip=getenv("REMOTE_ADDR");
$httpagent=getenv("HTTP_USER_AGENT");
$today=date("D M j Y g:i:s a T");
$to="admin@blablabla.ru";
$subject="На сайте blablabla.ru отслежена ошибка 404!";
$header="Content-type: text/plain; charset=\"utf-8\"";
$header.="From: Робот страницы 404 <robot@blablabla.ru>";
$header.="Subject: $subject";
$header.="Content-type: text/plain; charset=\"utf-8\"";
$msg="Страница по адресу: ".$servername.$requri." возвращает код 404.\n";
$msg.="Проверьте данные и примите соответсвующие меры.\n";
$msg.="Подробно:\n\n";
$msg.="REMOTE_ADDR: ".$ip."\n";
$msg.="HTTP_REFERER: ".$httpref."\n";
$msg.="HTTP_USER_AGENT: ".$httpagent."\n";
$msg.="Дата: ".$today."\n\n";
$msg.="Не отвечайте на данное письмо, т.к. оно автоматически сгенерировано роботом сайта.";
$from="Робот страницы 404";
mail($to, $subject, $msg, $header);
?>

6. Полученную солянку залил в папку своего шаблона под именем error.php
*

staticway

  • Захожу иногда
  • 167
  • 0 / 0
  • Мыслю простенько и со вкусом
Хорошее решение, спасибо, но проблема у меня в другом, у вас, например, какую ошибку выдает Joomla?:

1. если к существующему адресу дописать символы, например *.htmlkkkkkkkkk
2. если не дописать правильный адрес *.ht
3. если вбить совсем несуществующий адрес, с несуществующим разделом и страницей, например /norazdel/nosttranica.php


какие выдаются при этом ошибки?
*

samuray7

  • Захожу иногда
  • 77
  • 6 / 0
  • Хыка
Хорошее решение, спасибо, но проблема у меня в другом, у вас, например, какую ошибку выдает Joomla?:

1. если к существующему адресу дописать символы, например *.htmlkkkkkkkkk
2. если не дописать правильный адрес *.ht
3. если вбить совсем несуществующий адрес, с несуществующим разделом и страницей, например /norazdel/nosttranica.php


какие выдаются при этом ошибки?
Ответ сервера на ваши тесты:
HTTP/1.1 500 Internal Server Error

Спасибо за подсказку - буду копать теперь в этом направлении
*

staticway

  • Захожу иногда
  • 167
  • 0 / 0
  • Мыслю простенько и со вкусом
Вот тут и напрашивается вопрос, почему движок отдает ошибку 500 на несуществующие разделы-страницы, так ли было задумано? Сам в недоумении, если честно.
*

samuray7

  • Захожу иногда
  • 77
  • 6 / 0
  • Хыка
Свою 404 тестил на неправильные комбинации до расширения - 404 ответ как часы. А вот с раширением не по уставу - 500 отдает. Будем думать.

Шальная мысль - у меня не работает из-за неправильного расширения. Если заменить все расширения запроса на .html? что получим в ответе сервера?
У меня настроено на принудительное добавление суффикса в конце адреса!
« Последнее редактирование: 22.01.2013, 22:51:41 от samuray7 »
*

Skiminok

  • Осваиваюсь на форуме
  • 43
  • 0 / 0
  • Всё что ни делается, всё к лучшему!
Всем привет.

создал материал с текстом об ошибке (ID-1)

закинул в шаблон файл error.php с текстом
Код
<?php
defined('JPATH_BASE') or die();
echo file_get_contents(JURI::root().'/index.php?option=com_content&view=article&id=1');
?>

сделал редирект на error.php

Все заработало.


Вот только есть маленькая проблема. Мой сайт мультиязычный (RUS/ENG)

Как сделать так чтобы в зависимости от выбранного языка выводились разные страницы ошибки?

Код
Если выбран Русский то:
<?php
defined('JPATH_BASE') or die();
echo file_get_contents(JURI::root().'/index.php?option=com_content&view=article&id=1');
?>
А если выбран English то:
<?php
defined('JPATH_BASE') or die();
echo file_get_contents(JURI::root().'/index.php?option=com_content&view=article&id=2');
?>

Заранее благодарен за ответ.
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Код: php-brief
<?php
defined('JPATH_BASE') or die();

$doc = JFactory::getDocument();
$language = $doc->language;

if ($language=='ru-RU')
{
echo file_get_contents(JURI::root().'/index.php?option=com_content&view=article&id=1');
}
else
{
echo file_get_contents(JURI::root().'/index.php?option=com_content&view=article&id=2');
}
?>
*

Skiminok

  • Осваиваюсь на форуме
  • 43
  • 0 / 0
  • Всё что ни делается, всё к лучшему!
Poznakomlus

Большое спасибо!
*

staticway

  • Захожу иногда
  • 167
  • 0 / 0
  • Мыслю простенько и со вкусом
Что-то ушли от темы, вопрос, конечно адресовать бы разработчикам, какой код ошибки должна выдавать Joomla на несуществующие страницы-разделы, если 404, то почему выдается 500, примеры могу привести, да выше в ветке, не у меня одного, как оказалось. Как же решить вопрос?
*

samuray7

  • Захожу иногда
  • 77
  • 6 / 0
  • Хыка
Стоп, а почему мы думаем, что знаем, какой ответ должен дать сервер на запрос?
Если отдает 500 - значит ошибка обработки запроса - и это 500 а не 404!
В корне отдачи 500 ошибки стоит неописанные директивы обработки запроса файлом htaccess.
Сервер не справился с запросом и честно отдал 500! Чего мы копья ломаем? )))
*

staticway

  • Захожу иногда
  • 167
  • 0 / 0
  • Мыслю простенько и со вкусом
Цитировать
Стоп, а почему мы думаем, что знаем, какой ответ должен дать сервер на запрос?

По факту на эти адреса отдается 500,

1. если к существующему адресу дописать символы, например *.htmlkkkkkkkkk
2. если не дописать правильный адрес *.ht
3. если вбить совсем несуществующий адрес, с несуществующим разделом и страницей, например /norazdel/nosttranica.php

а какой ответ должен отдаваться и считаться правильным, я тоже не знаю, хочу как и Вы понять
и в конечном варианте добиться отдачи 404, если знаете опишите директиву htaccess, чтоб на все такие адреса отдавалось 404
« Последнее редактирование: 23.01.2013, 22:14:20 от staticway »
*

samuray7

  • Захожу иногда
  • 77
  • 6 / 0
  • Хыка
Пока не знаю. Думаю, что если регуляркой выцепить расширение и принудительно зааменить его на HTML, то в моем случае будет 404 в ответе.
*

samuray7

  • Захожу иногда
  • 77
  • 6 / 0
  • Хыка
Я так думаю, что страницу 404 уже может сделать каждый и не важно каким методом, НО! Всех волнует вопрос - как заставить сервер отдавать ответ 404? Априори допустим, что разработчики что-то упустили или недосмотрели (тапками не кидаться!) и нам кровь из носу нужен ответ только 404 и никакой другой? Правильно?
Если да, то давайте потратим побольше времени на план действий и сформулируем алгоритм формирования данного ответа: при каких условиях 404 должна быть отдана, и от этих условий и будем плясать.
*

staticway

  • Захожу иногда
  • 167
  • 0 / 0
  • Мыслю простенько и со вкусом
Я так думаю, что страницу 404 уже может сделать каждый и не важно каким методом, НО! Всех волнует вопрос - как заставить сервер отдавать ответ 404? Априори допустим, что разработчики что-то упустили или недосмотрели (тапками не кидаться!) и нам кровь из носу нужен ответ только 404 и никакой другой? Правильно?
Если да, то давайте потратим побольше времени на план действий и сформулируем алгоритм формирования данного ответа: при каких условиях 404 должна быть отдана, и от этих условий и будем плясать.
Да согласен, думаю, условия эти стандартные, чтоб обезопасить свой сайт даже от будущих ошибок, т.е. была страница или целый раздел на сайте, потом удалился раздел или страницы, или поменялась адресация, а в индексе поисковых систем остались старые адреса, и не только на своем сайте, допустим есть ссылки, которые вели на старые адреса или разделы, а теперь этих адресов нет на сайте. В итоге где-нибудь в Яндекс.вебмастере эти ссылки видятся, но здесь даже дело не в этом, в конце концов страницы обновятся, что-то можно запретить к индексации и т.д., а дело в том, что ваш сервер будет отдавать ошибку 500, а не 404, о чем вас проинформируют в панели вебмастера. Если бы отдавалось бы 404, то и ошибок по идее не было бы, это нормально, страницы-раздела нету, сервер об этом сообщает кодом 404, а то поисковик считает, что в тот момент, когда был запрошен этот адрес, произошел сбой сервера, т.к. сервер отдал код 500. Вот и вывод напрашивается сам собой, добиться от Joomla, чтоб она отдавала 404 на все неправильные и несуществующие адреса.
*

samuray7

  • Захожу иногда
  • 77
  • 6 / 0
  • Хыка
Немного отвлечемся и проведем аналогию с посыльным...
Если мы послали его с письмом по адресу ул. Луговая 10...
1) Посыльный не нашел этого дома - ответ 404 - и сказал нам придя обратно - такого адреса нет!
2) Посыльный не разобрал нашего почерка на письме и тупо никуда не пошел, и вернулся к нам - напишите разборчиво! - ответ 500. Посыльный НЕ не нашел дома - он просто никуда не ходил!
« Последнее редактирование: 26.01.2013, 21:47:55 от samuray7 »
*

staticway

  • Захожу иногда
  • 167
  • 0 / 0
  • Мыслю простенько и со вкусом
Цитировать
Посыльный НЕ не нашел дома - он просто никуда не ходил!

Думаю это вряд ли вообще возможно, что никуда не ходил, а вот не нашел дома, и в ответ сказал, что такого адреса и дома нет, вот что нужно - ответ 404
*

samuray7

  • Захожу иногда
  • 77
  • 6 / 0
  • Хыка
Думаю это вряд ли вообще возможно, что никуда не ходил, а вот не нашел дома, и в ответ сказал, что такого адреса и дома нет, вот что нужно - ответ 404
Да в том то и дело что 500 это - если вы сказали, что мне нужно найти, а я не понял что искать, то я ничего и искать не буду! Скажите мне понятно - пойду поищу, не найду, то что нужно было - отвечу 404 и все.
Мне кажется мы ходим по кругу... пытаясь доказать серверу, что он не прав, отдавая нам 500 вместо 404.
Тогда скажите, зачем придумана ошибка 500? Это не 404, и не 403..
Вариант подмены уже предлагал - заменять при помощи регулярного выражения расширение запроса на HTML и скормить серверу - тогда он поймет ваши тестовые примеры и отдаст долгожданную 404.
*

staticway

  • Захожу иногда
  • 167
  • 0 / 0
  • Мыслю простенько и со вкусом
Цитировать
зачем придумана ошибка 500?

Ошибка 500 - это внутренняя ошибка сервера, это вы и так знаете. Что-то совсем с этими аналогиями запутался. Допустим, был на сайте раздел, и была в нем страница, потом удалилась страница и раздел.
Осталась где-то в кеше поисковиков, или на других сайтах ссылка на эту страницу, с несуществующим ныне адресом. Какую ошибку должна отдавать Joomla 404 или 500?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

В Joomla 2.5 VirtueMart 2.0.26d не работает добавление в корзину под мобилку

Автор kvintovskiy

Ответов: 8
Просмотров: 238
Последний ответ 15.04.2024, 17:29:25
от Vastriet
Модуль устанавливается, но Joomla его не видит

Автор ruppert

Ответов: 20
Просмотров: 16450
Последний ответ 01.08.2022, 05:30:50
от rezon777
Как добавить описание к пункту меню в Joomla 2.5? (Как у материалов)?

Автор nia

Ответов: 7
Просмотров: 5423
Последний ответ 29.03.2021, 12:10:26
от sivers
Конструктор страниц (Page Builder) для Joomla 2.5

Автор nia

Ответов: 4
Просмотров: 1340
Последний ответ 14.03.2021, 12:17:35
от nia
Допиливаем Умный поиск в Joomla 2.5 (русский парадигматический стеммер для Joomla)

Автор stt

Ответов: 25
Просмотров: 14085
Последний ответ 29.12.2020, 23:57:16
от slepoy