Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.65/34: Рейтинг темы: голосов - 34, средняя оценка - 4.65
0 / 0 / 0
Регистрация: 19.10.2016
Сообщений: 17

Header("HTTP/1.1 404 Not Found"); возвращает 200

04.11.2016, 00:56. Показов 7526. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Бьюсь несколько дней... подскажите плиз...
есть index.php:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<?php
$correct_link=$_SERVER['REQUEST_URI'];
function check($var)
 {
  $var=preg_replace("/[^a-z0-9\.]/i", "", $var);
  return $var;
 }
 $correct_link=check($correct_link);
 if (!$_SERVER['REQUEST_URI']==$correct_link&!$_SERVER['REQUEST_URI']=='/')
 {
 header("HTTP/1.0 404 Not Found");
 echo "<script>document.location.replace('error404.php');</script>";
 }
  define ('PRO', 1);
  include('options.php');
 
 function ErrorPage404()
    {
        header("HTTP/1.0 404 Not Found");
        echo "<script>document.location.replace('error404.php');</script>";
        exit();
    }   
if (isset($_GET['id']))
{
  $file='';
  if ($_GET['id']==home.'.html')
  {
    $file = 'template/home.html';
  }
  elseif ($_GET['id']==about.'.html')
   {
    $file = 'template/about.html';
   }
   elseif ($_GET['id']==contacts.'.html')
     {
    $file = 'template/contacts.html';
     }
    elseif ($_GET['id']==map.'.html')
      {
      $file = 'template/map.html';
      }
      else
  {
   ErrorPage404();
  }
}
 include('top.php');
 include('maketop.php');
 include('links.php');
 include('llinks.php');
 include($file);
 include('makebottom.php');
 ?>
.htaccess

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^site.ru
RewriteRule (.*) http://www.site.ru/$1 [R=301,L]
# обработка ошибки 404 — Not Found
ErrorDocument 404 /error404.php
# последовательность индексных файлов
DirectoryIndex index.php?id=home.html
# редирект с /index.php на /
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ / [R=301,L]
# преобразование ЧПУ 
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?id=$1 [L,QSA]
Выдает такую ошибку:
HTML5
1
2
3
<br />
<b>Warning</b>:  Cannot modify header information - headers already sent by ( in <b>/home/public_html/index.php</b> on line <b>19</b><br />
<script>document.location.replace('error404.php');</script>
такой ответ на несуществующую ссылку:
HTML5
1
2
3
4
5
6
HTTP/1.1 200 OK
Server: nginx/1.10.2
Date: Thu, 03 Nov 2016 19:12:29 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
X-Powered-By: PHP/5.6.27
Как настроить вывод 404...
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.11.2016, 00:56
Ответы с готовыми решениями:

Ошибка header("HTTP/1.1 404 Not Found");
&lt;STRONG&gt;при вызове страници типа &lt;/STRONG&gt; ...

$.getJSON возвращает HTTP/1.1 404 Not Found
В форме ввода данных есть поле &quot;Место положение&quot;, организованное, через два зависимых списка (страна-город). Список со странами должен...

Замена 404 Not Found на 200 Ok
Имеется псевдопуть &quot;сайт.ру/название-записи/дополнение/&quot; в таком формате идёт перенаправление на страницу 404. На странице шаблона 404...

17
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
04.11.2016, 00:58
Что означает предупреждение "headers already sent"
0
930 / 846 / 190
Регистрация: 28.11.2013
Сообщений: 3,621
04.11.2016, 01:29
White_Dragon, может, после первого редиректа забыли вставить exit. И зачем вы вообще делаете этот редирект? Гораздо правильнее делать вот так: include('error404.php') или readfile('error404.php').

Добавлено через 5 минут
А можете просто что-то подобное написать $GLOBALS['file']='error404.php' без exit'а, чтобы содержимое указанного файла встроилось в общую конструкцию вашей страницы.

Добавлено через 3 минуты
PHP
1
$_GET['id']==home.'.html'
Не совсем понятно, что в подобных условиях представляет из себя home и т.п. Константа что ли?

Добавлено через 2 минуты
PHP
1
&!
Бинарное И рядом с логическим НЕ как-то непривычно видеть. Вы уверены, что хотели написать именно это?
0
0 / 0 / 0
Регистрация: 19.10.2016
Сообщений: 17
04.11.2016, 10:56  [ТС]
Jewbacabra, не помогло

Добавлено через 16 минут
Цитата Сообщение от miketomlin Посмотреть сообщение
White_Dragon, может, после первого редиректа забыли вставить exit. И зачем вы вообще делаете этот редирект? Гораздо правильнее делать вот так: include('error404.php') или readfile('error404.php').
не помогло...
Цитата Сообщение от miketomlin Посмотреть сообщение
А можете просто что-то подобное написать $GLOBALS['file']='error404.php' без exit'а, чтобы содержимое указанного файла встроилось в общую конструкцию вашей страницы.
я новичок и не совсем понимаю как это встроить... ошибки выдает...
Цитата Сообщение от miketomlin Посмотреть сообщение
PHPВыделить код
1
$_GET['id']==home.'.html'
Не совсем понятно, что в подобных условиях представляет из себя home и т.п. Константа что ли?
Добавлено через 2 минуты
PHPВыделить код
1
&!
Бинарное И рядом с логическим НЕ как-то непривычно видеть. Вы уверены, что хотели написать именно это?
брал идеи с разных сайтов и лепил как есть)))
все работает... кроме этой долбанной ошибки... выдает что ошибка в строке:
PHP
1
header("HTTP/1.0 404 Not Found");
0
930 / 846 / 190
Регистрация: 28.11.2013
Сообщений: 3,621
04.11.2016, 11:27
Цитата Сообщение от White_Dragon Посмотреть сообщение
не помогло...
Значит, что-то не так сделали. Это «железобетонный» способ.

Цитата Сообщение от White_Dragon Посмотреть сообщение
я новичок и не совсем понимаю как это встроить... ошибки выдает...
Как встраиваете? Какие ошибки?

Добавлено через 2 минуты
Еще заметил у вас одну логическую ошибку:
PHP
1
2
3
4
5
6
7
if (isset($_GET['id']))
{
  $file='';
  ...
}
...
include($file);
Добавлено через 3 минуты
Нужно $file определить без каких-либо условий и подумать над его дефолтным значением, чтобы не получилось в итоге вот так:
PHP
1
include('');
0
0 / 0 / 0
Регистрация: 19.10.2016
Сообщений: 17
04.11.2016, 14:41  [ТС]
Цитата Сообщение от miketomlin Посмотреть сообщение
Значит, что-то не так сделали. Это «железобетонный» способ.
выдает вот так (вложенный рисунок)

Цитата Сообщение от miketomlin Посмотреть сообщение
Как встраиваете? Какие ошибки?
вообще не знаю как встраивать)))

Цитата Сообщение от miketomlin Посмотреть сообщение
Еще заметил у вас одну логическую ошибку:
PHP
1
2
3
4
5
6
7
if (isset($_GET['id']))
{
* $file='';
* ...
}
...
include($file);
Нужно $file определить без каких-либо условий и подумать над его дефолтным значением, чтобы не получилось в итоге вот так:
чтоб был профи не писал бы на форуме новичков))), а вообще это страницы... оно связано с меню...
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// массив категорий
$links = array("home","about","contacts","map");
 
 
 
foreach ($links as $act)
{
if ($act=="home")
{$cat="На главную";}
if ($act=="about")
{$cat="О нас";}
if ($act=="contacts")
{$cat="Контакты";}
if ($act=="map")
{$cat="Карта сайта";}
echo "<li><a href='/".$act.".html'>".$cat."</a></li>";
 
}
Миниатюры
Header("HTTP/1.1 404 Not Found"); возвращает 200  
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
04.11.2016, 14:48
Цитата Сообщение от White_Dragon Посмотреть сообщение
выдает вот так (вложенный рисунок)
В сообщении об ошибке headers already sent самая ценная информация содержится в части output started at имя_файла:номер_строки. Именно в этом месте начинается вывод. Так как указана первая строка, то вероятнее всего там есть BOM, и нужно менять кодировку файла, о чем сказано в ссылке, которую я приводил
0
0 / 0 / 0
Регистрация: 19.10.2016
Сообщений: 17
04.11.2016, 15:02  [ТС]
Цитата Сообщение от Jewbacabra Посмотреть сообщение
В сообщении об ошибке headers already sent самая ценная информация содержится в части output started at имя_файла:номер_строки. Именно в этом месте начинается вывод. Так как указана первая строка, то вероятнее всего там есть BOM, и нужно менять кодировку файла, о чем сказано в ссылке, которую я приводил
я проверял там ничего нет... а показывает 1 строку потому что там:
PHP
1
include('main.php');
а уже в main.php в 20 строке:
PHP
1
header("HTTP/1.0 404 Not Found");
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
04.11.2016, 15:04
Цитата Сообщение от White_Dragon Посмотреть сообщение
я проверял там ничего нет
Каким образом проверял отсутствие BOM?
Цитата Сообщение от White_Dragon Посмотреть сообщение
а показывает 1 строку потому что там:
Нет, первую строку показывает там потому, что там есть вывод. Именно там, include не причем.
0
0 / 0 / 0
Регистрация: 19.10.2016
Сообщений: 17
04.11.2016, 15:06  [ТС]
Цитата Сообщение от Jewbacabra Посмотреть сообщение
Каким образом проверял отсутствие BOM?
Инспектором скрытых символов в DW
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
04.11.2016, 15:22
Цитата Сообщение от White_Dragon Посмотреть сообщение
Инспектором скрытых символов в DW
Возьми index.php именно оттуда, где он не работает и загрузи его сюда: https://hexed.it/
Начинаться он должен с <? и ничего другого
0
0 / 0 / 0
Регистрация: 19.10.2016
Сообщений: 17
04.11.2016, 15:25  [ТС]
Цитата Сообщение от Jewbacabra Посмотреть сообщение
Возьми index.php именно оттуда, где он не работает и загрузи его сюда: https://hexed.it/
Начинаться он должен с <? и ничего другого
ничего нет...
Миниатюры
Header("HTTP/1.1 404 Not Found"); возвращает 200  
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
04.11.2016, 15:29
Цитата Сообщение от White_Dragon Посмотреть сообщение
ничего нет...
в index.php только <?php include ?> И все? Это не соответствует тому что в 1 посте.
Файл именно из того места где не работает, и без изменений?
0
0 / 0 / 0
Регистрация: 19.10.2016
Сообщений: 17
04.11.2016, 15:29  [ТС]
Цитата Сообщение от White_Dragon Посмотреть сообщение
Сообщение от Jewbacabra
Возьми index.php именно оттуда, где он не работает и загрузи его сюда: https://hexed.it/
Начинаться он должен с <? и ничего другого
ничего нет...
нашел... это было в одном из 10 подключаемых файлов... пришлось все проверять...
Спасибо!
0
0 / 0 / 0
Регистрация: 19.10.2016
Сообщений: 17
12.11.2016, 00:43  [ТС]
Есть пару вопросов по заголовкам HTTP
ответ сервера:
HTML5
1
2
3
4
5
6
7
8
9
HTTP/1.1 200 OK
Server: nginx/1.10.2
Date: Fri, 11 Nov 2016 21:32:23 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
X-Powered-By: PHP/5.6.27
Last-Modified: Thu, 01 Jan 1970 00:00:00 GMT
Cache-Control: max-age=172800, private, must-revalidate
Expires: Fri, 18 Nov 2016 21:32:23 GMT
код:
PHP
1
2
3
4
5
6
7
8
9
$qtime = isset($_SERVER['HTTP_IF_MODIFIED_SINCE'])? $_SERVER['HTTP_IF_MODIFIED_SINCE']:'' ;
$modified = substr(gmdate('r', $timestamp), 0, -5).'GMT';
if ($hdr == $modified) 
{
header ("HTTP/1.1 304 Not Modified ");
header ("Last-Modified: $modified");
exit();
}
header ("Last-Modified: $modified");
не работает...

код:
PHP
1
2
3
4
5
6
7
8
9
10
11
ob_start('ob_gzhandler');
ob_implicit_flush(0); // отключаем неявную отправку буфера
// Запуск буфера вывода
// Кешируем содержание в файл
$cached = fopen($cachefile, 'w');
fwrite($cached, ob_get_contents());
fclose($cached);
if (!header_sent()) header('Content-Length: '.ob_get_length()); // если заголовки еще можно отправить, выдаем загловок Content-Length, иначе придется завершать передачу по закрытию
ob_end_flush();
exit(0); 
// Отправляем вывод в браузер
также не выдает размер...
0
12 / 11 / 8
Регистрация: 30.11.2015
Сообщений: 422
12.11.2016, 00:48
PHP
1
2
<?php
ob_start();
далее код
0
0 / 0 / 0
Регистрация: 19.10.2016
Сообщений: 17
12.11.2016, 00:56  [ТС]
Цитата Сообщение от Salvat Посмотреть сообщение
далее код
???
0
930 / 846 / 190
Регистрация: 28.11.2013
Сообщений: 3,621
12.11.2016, 05:53
А вы исправили это?
Цитата Сообщение от miketomlin Посмотреть сообщение
может, после первого редиректа забыли вставить exit
Добавлено через 2 минуты
Я про 12 строку. И что вам мешает на этом месте использовать ту же ErrorPage404()?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.11.2016, 05:53
Помогаю со студенческими работами здесь

HTTP 404 Not Found ( Indy )
Добрый день, возникла такая проблема, начнем сначала: у меня есть 3 запроса в StringList'e, я делаю переход по ним через цикл, но появилась...

HTTP Status 404 – Not Found
Я уже ничего не понимаю. Контроллер работает, индекс выводится, а страница helloworld.jsp нет. Вообще ни в какую. 6 часов убил. ...

Несуществующие страницы отдают заголовок 200 OK вместо 404 Not Found
Всем привет! Столкнулся с такой проблемой. Сделал отдельную страницу для отображения ошибки 404. Для этого прописал в файле web.config...

get_headers возвращает 404 вместо 200
Здравствуйте! Надеюсь, кто-нибудь поможет разобраться с проблемой. В общем, есть страничка mysite.com/hz.php, которая в браузере...

Ошибка HTTP 404.3 - Not Found. Не читает ASP
Всем привет! Установил IIS 7.5 (Win7), добавил сайт с файлами ASP, а он их не читает, и пишет вот такое: &quot;Ошибка HTTP 404.3 - Not...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru