ловить все ошибки и перенаправлять на страницу с помощью php

Есть ли способ сказать, что php перенаправляет на определенную страницу все неустранимые ошибки?

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

Позволяет просто притворяться ради аргумента, что я не хочу видеть ошибки, и страницы постоянно редактируются и обновляются роботами, которые вызывают ошибки каждые 23-е или 51-е страницы.

Я ищу что-то, что, возможно, связано с файлом php.ini или htaccess, что-то, что я могу сделать на сайте.

Solutions Collecting From Web of "ловить все ошибки и перенаправлять на страницу с помощью php"

Вы можете изменить страницу ошибок 500 по умолчанию в Apache с помощью директивы 'ErrorDocument':

ErrorDocument 500 /500.html 

Это перенаправляет ошибку внутреннего внутреннего сервера 500.html. Вы также можете использовать страницу PHP и отправить ссылку на страницу.

Чтобы поймать ошибки, вы можете зарегистрировать их в файле error.log. Используйте следующие две директивы в файле php.ini:

 error_log = /var/log/httpd/error_php log_errors = On 

Не забудьте перезапустить Apache.

См. set_error_handler :

set_error_handler – устанавливает пользовательскую функцию обработчика ошибок

Пример:

 <?php function errorHandler($n, $m, $f, $l) { header('Location: http://example.com/error.php'); } set_error_handler('errorHandler'); ... ?> 

Во-первых, измените ваш php.ini для подавления сообщений об ошибках и включения ведения журнала:

  display_errors=Off log_errors=On error_log=whatever/path 

Напишите обработчик ошибок (в отличие от set_error_handler , этот тоже улавливает set_error_handler )

 register_shutdown_function('errorHandler'); function errorHandler() { $err = error_get_last(); if($err) include "error_page.php"; // your custom error page } 

Поместите этот код в файл и скажите php, чтобы он включал его на каждом requrest (см. auto_prepend_file @ http://php.net/manual/en/ini.core.php )