powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / header(404)
6 сообщений из 6, страница 1 из 1
header(404)
    #38904285
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Задача - при доступе к странице вернуть ошибку 404 и заставить апач отобразить стандартную страницу об ошибке. Пробовал
Код: php
1.
2.
3.
//http_response_code(404);
header($_SERVER["SERVER_PROTOCOL"] . ' 404 Not Found');
exit;

получаю пустую страницу. В access.log записано[13/Mar/2015:16:01:50 +0200] "GET /admin/users.php HTTP/1.1" 404 -При этом, если я запрашиваю несуществующую страницу, то сообщение такое[13/Mar/2015:15:57:46 +0200] "GET /admin/users1.php HTTP/1.1" 404 214214 байтов ушло.

В интернетах советуют после отправки 404, вызывать readfile() нужной страницы об ошибке, но я понятия не имею, что это за страница и какая будет установлена конфигурация из ErrorDocument. Хотелось бы просто вернуть серверу ошибку и, чтобы он ее штатно обработал.

С уважением, Vasilisk
...
Рейтинг: 0 / 0
header(404)
    #38904378
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_В интернетах советуют после отправки 404, вызывать readfile() нужной страницы об ошибке, но я понятия не имею, что это за страница и какая будет установлена конфигурация из ErrorDocument.Как вариант, обратиться curl'ом к несуществующему адресу этого сервера (только не нарваться в запросе на свой скрипт) и таким образом получить контент страницы, сохранить его в файл.
...
Рейтинг: 0 / 0
header(404)
    #38904468
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkleКак вариантИнтересно. Причем даже в файл сохранять не нужно. Сразу на stdout.

Как я понял, ничего цивилизованней нет?

Только там же выводится и имя запрашиваемой страницы. Ладно, будем пробовать заменять
...
Рейтинг: 0 / 0
header(404)
    #38904490
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_, здесь утверждается что http_send_status (404); должна помочь.
...
Рейтинг: 0 / 0
header(404)
    #38904517
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bazile здесь утверждаетсяНе помогает. Я проверял. Собственно совет и не подтвержден. Сделал так
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
  function pageNotFound() {
    header($_SERVER['SERVER_PROTOCOL'] . ' 404 Not Found');
    $url = sprintf('http://127.0.0.1%s?error', $_SERVER['PHP_SELF']);
    $curl = curl_init($url);
    curl_exec($curl);
    curl_close($curl);
    exit;
  }


+.htaccess
Код: php
1.
2.
RewriteCond %{QUERY_STRING} ^error$
RewriteRule (.*)$ $1 [R=404]
...
Рейтинг: 0 / 0
header(404)
    #38904550
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_Причем даже в файл сохранять не нужно. Сразу на stdout.Можно и сразу, но зачем плодить лишний запрос к серверу каждый раз? По ресурсам это будет гораздо затратнее, нежели прочитать небольшой файлик.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / header(404)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]