Я использую Apache 2.2.X и PHP 5.2.X (установленный как модуль Apache) для создания нового веб-сайта, и я хотел бы прочитать ваши предложения о том, как я пытаюсь обрабатывать ошибки сервера.
Я думал о том, чтобы использовать тот же файл моей домашней страницы (/index.php), чтобы показывать пользовательские сообщения об ошибках. Это моя настройка .htaccess:
ErrorDocument 400 /index.php?error=400 ErrorDocument 401 /index.php?error=401 ErrorDocument 403 /index.php?error=403 ErrorDocument 404 /index.php?error=404 ErrorDocument 500 /index.php?error=500
Теперь в моем файле index.php у меня есть код, который выглядит так:
if (isset($_GET['error'])) DrawErrorPage($_GET['error']); else DrawHomepage();
Все работает как шарм.
Ну, все, кроме одной вещи, которую я не могу исправить: если я заставляю Apache отвечать кодом состояния 500 (например, вставляя неверный код в мой .htaccess), я не перенаправляюсь на «/index.php? error = 500 ", но вместо этого я получаю страницу с ошибкой по умолчанию 500. С любым другим кодом состояния (например, 403 или 404) моя конфигурация работает абсолютно отлично.
Но теперь у меня есть сомнения, и я начинаю думать, что было бы лучше использовать другую страницу для обработки ошибок (например, «/error.php»).
«DrawHomepage ()» необходимо установить метатег «robots» в «index, follow», в то время как «DrawErrorPage ()» необходимо установить его в «noindex, nofollow». Правильно? Итак … что произойдет, если веб-искатель получит сообщение об ошибке, впервые посетив мою домашнюю страницу? Что произойдет, если веб-искатель получит 200 посещений моей домашней страницы в первый раз, но 500 посещений его через месяц? И что произойдет, если я сохраню метатег «robots» в «index, follow», даже если я покажу ошибки?
Есть ли решение проблемы, решение этой проблемы? Что бы вы сделали?
Большое спасибо!