На своей локальной машине для разработки я загрузил PDT + Zend Server, который включал Apache 2.2.16 и PHP 5.3.5, работающий на Windows 7. На моем локальном сайте я включил .htaccess, который включает ErrorDocuments для 404, 403и 500. В моем PHP я использую заголовок («Http / 1.0 404 Not Found»), когда пользователь запрашивает документ, который не существует.На моем локальном сервере все отлично работает.Мой пользовательский ErrorDocument появляется, и я счастлив.
Я загружаю все на свой общий хост, работающий под управлением Apache 2.2.38 и PHP 5.3.8 на сервере Linux, и внезапно ErrorDocuments работают, только если они неисходят из PHP.
Есть ли в PHP.ini, httpd.conf или .htaccess какая-то настройка, которая позволяет Apace видеть коды ошибок из PHP, что заставляет мой dev-сервер работать правильно, но не мой общий хост?
Изучая это, все, что я когда-либо видел, было: «Apache не видит код состояния, как только он переходит на PHP».В таком случае, почему мой сервер разработки работает правильно?
Редактировать
Для ясности вот .htaccess:
# Use PHP 5.3
Action application/x-hg-php53 /cgi-sys/php53
AddHandler application/x-hg-php53 .php
#Deny Include Files
<Files *.inc>
order deny,allow
deny from all
</files>
#Provide custom error documents
ErrorDocument 404 /Errors/Http404.php
ErrorDocument 403 /Errors/Http403.php
ErrorDocument 500 /Errors/Http500.php
.htaccess работает , поскольку, если пользователь переходит на myhost.com/jdkslfjdls, он получает содержимое файла Errors / Http404.php.
Однако, если пользователь переходит на myhost.com/images/GetImage.php?Id=5 (когда нет изображения № 5), пользователь не получает никакого контента.
Если перейти к (Внутренний IP-адрес) /images/GetImage.php?Id=5, пользователь получит содержимое файла Errors / Http404.php.
Аналогичная проблема возникает, еслипользователь пытается получить доступ к GetImage.php? Id = 6 (когда есть изображение # 6, но у него нет разрешения).На общем сервере они получают пустую страницу или ошибку браузера 403.На моем dev-сервере они получают мою собственную страницу ошибки 403.
И снова документ с ошибкой 403 работает на общем сервере, если я пытаюсь получить доступ к файлу .inc.