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

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

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

 (Прочитано 120 раз)
0 Пользователей и 1 Гость смотрят эту тему.
warlocksp
Живу я здесь
******

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

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


Красота и мудрость - в простоте....


« : 04.08.2016, 17: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, 18:45:17 от warlocksp » Записан
Efanych
Группа развития
*****

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

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



« Ответ #1 : 04.08.2016, 17: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
Живу я здесь
******

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

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


Красота и мудрость - в простоте....


« Ответ #2 : 04.08.2016, 18: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
Записан
Efanych
Группа развития
*****

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

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



« Ответ #3 : 04.08.2016, 18:04:29 »

Цитировать
Как мне сделать, подскажите - нужно что б было в шаблоне...
Не понял, что нужно сделать. Ваш код с двумя заголовками вряд ли сработает.
Пишите, как я написал выше и не волнуйтесь. Можете ещё саму страницу /error-404 закрыть для индексации в robots.txt
Записан
warlocksp
Живу я здесь
******

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

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


Красота и мудрость - в простоте....


« Ответ #4 : 04.08.2016, 18:16:10 »

Не понял, что нужно сделать. Ваш код с двумя заголовками вряд ли сработает.
Пишите, как я написал выше и не волнуйтесь. Можете ещё саму страницу /error-404 закрыть для индексации в robots.txt

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

Решение было перед глазами...
Записан
Страниц: [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