Основной курс по Joomla

Ответ сервера 404 - ?

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

warlocksp

  • Живу я здесь
  • ******
  • 927
  • 8
  • Красота и мудрость - в простоте....
Ответ сервера 404 - ?
« : 04.08.2016, 18:40:23 »
Добрый день,

Знаю что тема не однократно поднималась...

Но не могу сделать, что б страница: error-404 - сервер отдавал ответ HTTP/1.1 404 Not Found - ?
У меня сейчас отдает 200 OK

Как сделать ответ сервера что б был HTTP/1.1 404 Not Found

Делал как всегда:
1.) Делаем страницу 404, как обычный материал, пишем все что хотим в ней.
C аллиас error-404.

2.) Создаем меню "Фиктивное меню" выводить которое мы не будем.
Создаем пункт этого меню со ссылкой на материал, который создали (ошибка 404).
Пишем аллиас error-404.

3.) Далея копируем из /templates/system/error.php - этот файл в корень вашего шаблона...
Открываем его и все что ниже:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" dir="<?php echo $this->direction; ?>">

Вставляю:
<?php
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );
?>
<?php
if ($this->error->getCode() == '404') {
   echo file_get_contents(JURI::root().'/error-404');
}
?>

Или

<?php
if ($this->_error->get('code') == '404') {
header("HTTP/1.0 404 Not Found");
header('Location: error-404');
exit;} ?>
</html>
« Последнее редактирование: 04.08.2016, 19:45:17 от warlocksp »
Разработка, сопровождения, продвижение веб ресурсов...Хостинг-провайдер...
ICQ : 663021519;Skype: Warl-Uanic;Nic-Handle: Warl-Uanic.

*

Efanych

  • Группа развития
  • *****
  • 4317
  • 605
Re: Ответ сервера 404 - ?
« Ответ #1 : 04.08.2016, 18:57:20 »
Цитировать
http://siroedspb.ru/error-404
Но не могу сделать, что б страница: error-404 - сервер отдавал ответ HTTP/1.1 404 Not Found - ?
У меня сейчас отдает 200 OK
Сама страница и должна отдавать код 200. Это не страница ошибки, а существующий материал.

Если в error.php вы напишете
Цитировать
<?php
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );
?>
<?php
if ($this->error->getCode() == '404') {
   echo file_get_contents(JURI::root().'/error-404');
}
?>
,
то на несуществующих страницах ответ сервера будет 404, но это не будет страница материала, а просто содержимое несуществующей страницы будет браться из существующего материала
Создание сайтов, шаблонов, помощь в решении проблем.

*

warlocksp

  • Живу я здесь
  • ******
  • 927
  • 8
  • Красота и мудрость - в простоте....
Re: Ответ сервера 404 - ?
« Ответ #2 : 04.08.2016, 19:00:45 »
Сама страница и должна отдавать код 200. Это не страница ошибки, а существующий материал.

Если в error.php вы напишете

Уже просто поставил:
<?php
if ($this->_error->get('code') == '404') {
header("HTTP/1.0 404 Not Found");
header('Location: error-404');
exit;} ?>

Как мне сделать, подскажите - нужно что б было в шаблоне...
Да если отдельно делать 404 - тогда срабатывает ответ сервера 404
Разработка, сопровождения, продвижение веб ресурсов...Хостинг-провайдер...
ICQ : 663021519;Skype: Warl-Uanic;Nic-Handle: Warl-Uanic.

*

Efanych

  • Группа развития
  • *****
  • 4317
  • 605
Re: Ответ сервера 404 - ?
« Ответ #3 : 04.08.2016, 19:04:29 »
Цитировать
Как мне сделать, подскажите - нужно что б было в шаблоне...
Не понял, что нужно сделать. Ваш код с двумя заголовками вряд ли сработает.
Пишите, как я написал выше и не волнуйтесь. Можете ещё саму страницу /error-404 закрыть для индексации в robots.txt
Создание сайтов, шаблонов, помощь в решении проблем.

*

warlocksp

  • Живу я здесь
  • ******
  • 927
  • 8
  • Красота и мудрость - в простоте....
Re: Ответ сервера 404 - ?
« Ответ #4 : 04.08.2016, 19:16:10 »
Не понял, что нужно сделать. Ваш код с двумя заголовками вряд ли сработает.
Пишите, как я написал выше и не волнуйтесь. Можете ещё саму страницу /error-404 закрыть для индексации в robots.txt

ОГРОМНОЕ ТЕБЕ СПАСИБО... С меня ++++++
Спасибо...

Решение было перед глазами...
Разработка, сопровождения, продвижение веб ресурсов...Хостинг-провайдер...
ICQ : 663021519;Skype: Warl-Uanic;Nic-Handle: Warl-Uanic.