установил xampp в httpd.conf - <Directory "C:/Pub/xampp/htdocs"> ... AllowOverride All ... </Directory> в корне лежит .htaccess следующего вида: Код (Text): ErrorDocument 100 /error.php?100 ErrorDocument 101 /error.php?101 ErrorDocument 200 /error.php?200 ErrorDocument 201 /error.php?201 ErrorDocument 202 /error.php?202 ErrorDocument 203 /error.php?203 ErrorDocument 204 /error.php?204 ErrorDocument 206 /error.php?205 ErrorDocument 206 /error.php?206 ErrorDocument 300 /error.php?300 ErrorDocument 301 /error.php?301 ErrorDocument 302 /error.php?302 ErrorDocument 303 /error.php?303 ErrorDocument 304 /error.php?304 ErrorDocument 305 /error.php?305 ErrorDocument 306 /error.php?306 ErrorDocument 307 /error.php?307 ErrorDocument 400 /error.php?400 ErrorDocument 401 /error.php?401 ErrorDocument 402 /error.php?402 ErrorDocument 403 /error.php?403 ErrorDocument 404 /error.php?404 ErrorDocument 405 /error.php?405 ErrorDocument 406 /error.php?406 ErrorDocument 407 /error.php?407 ErrorDocument 408 /error.php?408 ErrorDocument 409 /error.php?409 ErrorDocument 410 /error.php?410 ErrorDocument 411 /error.php?411 ErrorDocument 412 /error.php?412 ErrorDocument 413 /error.php?413 ErrorDocument 414 /error.php?414 ErrorDocument 415 /error.php?415 ErrorDocument 500 /error.php?500 ErrorDocument 501 /error.php?501 ErrorDocument 502 /error.php?502 ErrorDocument 503 /error.php?503 ErrorDocument 504 /error.php?504 ErrorDocument 505 /error.php?505 там же есть файл error.php Код (Text): <?php $server_url = "http://192.168.4.227/"; $server_name = "Seattle Inc."; $a[100] = "Continue :: Клиент может продолжать запрос."; $a[101] = "Switching Protocols :: Сервер принял запрос клиента на переключение на модифицированный протокол."; $a[200] = "НТТР_ОК :: Успешный запрос."; $a[201] = "HTTP_CREATED :: Запрос выполнен, в результате этого был создан новый запрос."; $a[202] = "HTTP_ACCEPTED :: Запрос был принят на обработку, но обработка не завершена."; $a[203] = "HTTP_NON_AUTHORITATIVE :: Возвращенная информация была собрана с копии третьей стороны."; $a[204] = "HTTP_NO_CONTENT :: Сервер обработал запрос, но в результате данные не получены."; $a[205] = "Reset Content :: Пользовательский агент переустановит отображение документа."; $a[206] = "Partial Content :: Сервер выполнил частичный запрос GET к документу."; $a[300] = "HTTP_MULTIPLE_CHOICES :: Этот заголовок используется для того, чтобы показать, что удовлетворять запрос может более чем один документ."; $a[301] = "HTTP_MOVED_PERMANENTLY :: Запрошенный документ был перенесен на новый URI."; $a[302] = "HTTP_FOUND :: Запрошенный ресурс был временно перемещен на новый URI."; $a[303] = "HTTP_SEE_OTHER :: Ответ на запрос можно найти под различными URI. Он может быть выбран с помощью запроса, сделанного методом GET к этому ресурсу."; $a[304] = "HTTP_NOT_MODIFIED :: Сервер отвечает этим кодом, когда клиент выполнил условный запрос GET и запрос был разрешен, но документ не модифицирован."; $a[305] = "HTTP_USE_PROXY :: Доступ к запрошенному ресурсу должен производиться через proxy, заданный в поле Location . Поле Location задает URI для proxy."; $a[307] = "HTTP TEMPORARY REDIRECT :: Запрошенный ресурс временно находится под другими URI. Так как переадресация может быть отменена в любой удобный момент, для будущих запросов клиент должен использовать Request-URI."; $a[400] = "Bad Request :: Запрос не понят сервером из-за наличия синтаксической ошибки."; $a[401] = "Unauthorized :: Запрос требует идентификации пользователя."; $a[402] = "Payment Required :: Требуется оплата."; $a[403] = "Forbidden :: Сервер понял запрос, но он отказывается его выполнять. Запрещено. Идентификация тут не помогает."; $a[404] = "Not Found :: Сервер не нашел соответствия по запросу Request-URI."; $a[405] = "Method Not Allowed :: Метод, указанный в Request-Line, не соответствует ресурсу, заданному Request-URI."; $a[406] = "Not Acceptable :: Ресурс, определенный запросом, может генерировать только ответ, характеристики которого не соответствуют заголовкам, посланным в запросе."; $a[407] = "Proxy Authentication Required :: Этот код подобен коду 401 (unauthorized), но в этом случае клиент должен сначала идентифицировать себя с помощью proxy."; $a[408] = "Request Time-out :: На протяжении периода ожидания сервера клиент не сделал запроса."; $a[409] = "Conflict :: Запрос не будет завершен вследствие конфликта с текущим состоянием ресурса."; $a[410] = "Gone :: Запрошенный ресурс и адрес, по которому можно сделать пересылку, на сервере отсутствуют."; $a[411] = "Length Required :: Сервер отказывается принимать запрос без определенного Content-Length."; $a[412] = "Precondition Failed :: При проверке на сервере одного или более полей заголовка запроса обнаружено несоответствие."; $a[413] = "Request Entity Too Large :: Сервер отказывается обрабатывать запрос потому, что размер запроса больше того, что может обработать сервер."; $a[414] = "Request-URI Too Large :: Сервер отказывается обрабатывать запрос потому, что Request-URI превышает размеры, которые может обработать сервер."; $a[415] = "Unsupported Media Type :: Неподдерживаемый медиа тип."; $a[500] = "Internal Server Error :: Внутренняя ошибка сервера."; $a[501] = "Not Implemented :: Сервер не поддерживает возможностей, необходимых для обработки запроса."; $a[502] = "Bad Gateway :: Сервер, функционирующий как шлюз или proxy, получил ошибочный ответ от подчиненного сервера, к которому он попытался получить доступ для обработки запроса."; $a[503] = "Service Unavailable :: В данный момент сервер не в состоянии обработать запрос из-за того, что сервер перегружен или находится на профилактическом обслуживании."; $a[504] = "Gateway Time-out :: Работая в режиме шлюза или proxy, сервер не получил вовремя ответ от сервера верхнего уровня."; $a[505] = "HTTP Version not supported :: Сервер не поддерживает или отказывается поддерживать версию протокола HTTP, которая была использована в последнем запросе."; if (getenv('HTTP_X_FORWARDED_FOR')) { $ip=getenv('HTTP_X_FORWARDED_FOR'); } else { $ip=getenv('REMOTE_ADDR'); } $url = "http://"; $url .=$_SERVER['SERVER_NAME']; $url .=$_SERVER['REQUEST_URI']; $signature = $_SERVER['SERVER_SIGNATURE']; $browser = $_SERVER['HTTP_USER_AGENT']; $time = date("d.m.Y H:i:s"); $title = "$server_name - Ошибка $id"; $body = "<hr><br><br>Запрошенный Вами url: $url<br>Возможно интересующую Вас информацию можно найти по старому адресу: <a href='$server_url' target='_blank'>$server_url</a><br><br>Ваш IP: $ip<br>Ваш броузер: $browser<br>Текущее время сервера: $time<br><br><br><hr>$signature"; ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title><?=$title?></title> </head> <body> <div align="center"><h1>Ошибка <?=$id?></h1><h2><?=$a[$id]?></h2></div> <?=$body?> </body> </html> но обрабатывает только некоторые ошибки. вопрос почему ? (как пример при запросе http://localhost/% - должна быть ошибка из моего скрипта Bad request Error 400, а выдаётся стандартная ошибка apache)
А что такое $id в этой строке: Код (Text): $title = "$server_name - Ошибка $id"; Нужно добавить в .htaccess это: Код (Text): ErrorDocument 100 /error.php?id=100 Вроде так. Да и разрешить в апаче использование .htaccess файла, а то по дефолту он запрещён.