Форум русской поддержки Joomla!® CMS
04.12.2016, 16:20:40 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Настроить корректный код ошибки 404

 (Прочитано 291 раз)
0 Пользователей и 1 Гость смотрят эту тему.
masimka
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 11


« : 09.12.2015, 12:11:12 »

Добрый день, такая проблема, мой сайт на несуществующие страницы отдает код 200 ОК, а должен отдавать 404 ошибку. http://vsodeystvii.ru/404    Страница выходит с ошибкой 404, но вот код от сервера 200 ОК,   а мне нужно 404.  В чем может быть проблема? подскажите пожалуйста.
Записан
caleblt
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Сообщений: 56


« Ответ #1 : 09.12.2015, 13:35:27 »

В корне шаблона создайте файл error.php и внутри:
<?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();
$app             = JFactory::getApplication();
$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">
 
<?php defined('JPATH_BASE') or die();
echo file_get_contents(JURI::root().'/oshibka-404');?>

Где ссылка /oshibka-404 это ссылка на страницу. Создайте неопубликованное меню и там ссылку на эту страницу.
Записан
masimka
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 11


« Ответ #2 : 10.12.2015, 16:14:09 »

Я все сделал, спасибо вам за помощь, но теперь ответ севера от этой страницы следующий.

HTTP/1.1 404 МАТЕРИАЛ НЕ НАЙДЕН
SERVER: NGINX/1.6.3
DATE: THU, 10 DEC 2015 12:05:02 GMT
CONTENT-TYPE: TEXT/HTML; CHARSET=UTF-8
CONNECTION: KEEP-ALIVE
VARY: ACCEPT-ENCODING
X-POWERED-BY: PHP/5.3.29
SET-COOKIE: F56C5235F418BEB658E7E498F3EABD0E=5798357071F42A6A3D8FD3733F4A72A6; PATH=/; HTTPONLY
P3P: CP="NOI ADM DEV PSAI COM NAV OUR OTRO STP IND DEM"
CACHE-CONTROL: NO-CACHE
PRAGMA: NO-CACHE

Вопрос в следующем, почему  ответ "МАТЕРИАЛ НЕ НАЙДЕН"   ведь ошибка должна содержать "NOT FOUND"  почему сервер говорит материал не найден?
Записан
caleblt
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Сообщений: 56


« Ответ #3 : 11.12.2015, 09:38:56 »

Эмм... Я в PHP не программирую, но возможно нужно дописать перед echo: header("HTTP/1.1 404 Not Found (Или любой другой текст)"); http://www.php.su/header
Записан
Филипп Сорокин
Живу я здесь
******

Репутация: +120/-3
Offline Offline

Пол: Мужской
Сообщений: 1444


« Ответ #4 : 11.12.2015, 09:44:04 »

Так вы описание можете задать какое захотите:

Цитировать
JError::raiseError(404, 'Not Found');
Записан
masimka
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 11


« Ответ #5 : 14.12.2015, 13:36:39 »

у меня сейчас содержимое <?php

defined( '_JEXEC' ) or die( 'Restricted access' );
?>
<?php

header("HTTP/1.1 404 Not Found");
echo file_get_contents(JURI::root().'/404');
?>   


Но ошибка все равно выходит.    Материал не найден, или категория не найдена.   

Уже замучался выяснять )))
Записан
masimka
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 11


« Ответ #6 : 14.12.2015, 13:37:06 »

Эмм... Я в PHP не программирую, но возможно нужно дописать перед echo: header("HTTP/1.1 404 Not Found (Или любой другой текст)"); http://www.php.su/header

попробовал сделать как вы сказали, но результат тот же ((
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet