在我的VirtualHost我设置默认错误页面.
示例:
<VirtualHost *:80>
ServerName example.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory /var/www/html/>
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorDocument 403 /error_page/403.php
ErrorDocument 404 /error_page/404.php
ErrorDocument 500 /error_page/500.php
ErrorDocument 503 /error_page/503.php
</VirtualHost>
错误403和404似乎可以工作,但错误500不可以。作为测试,我需要一个我知道不存在的php文件:
require ("unknown_file.php");
在Safari中,页面保持空白,而在Chrome或Edge中,我会得到默认的错误500页面。我可以在PHP中将display_errors设置为On,但我不会得到自定义的500页面,而是错误消息,这是我不希望在生产中出现的。
我做错了什么?我已经重新启动了Apache和PHP,但这没有任何区别。
1条答案
按热度按时间68de4m5k1#
错误500用于(临时?)服务器错误。
如果你想模拟它,只要把这个放在一个php文件中(例如:test_error_500_page.php)
现在调用www.yoursite.com/test_error_500_page.php,您将获得“/error_page/500.php”页面内容