php重定向error,php – Apache的ErrorDocument指令不重定向

在这个问题上有一些不同的误解.以下PHP代码:

header("HTTP/1.0 500 Internal Server Error");

die();

将不会触发Apache错误页面 – 它触发浏览器的默认错误页面.一旦控制权被赋予了PHP,它就不会回到Apache来进行错误处理.

ErrorDocument仅适用于错误代码,而不是成功代码.它在文档中

Syntax: ErrorDocument error-code document

如果您误认为某种浏览器错误页面出现服务器错误,那么这可能是您的主要问题的原因.除非您的自定义错误处理程序输出一定量的数据,否则一些浏览器将始终显示自己的错误页面.确保您的输出大小至少为几千字节.

您的问题的原因很可能只是Apache的内置行为与您选择的测试URL相结合.从ErrorDocument文档:

Although most error messages can be

overriden,there are certain

circumstances where the internal

messages are used regardless of the

setting of ErrorDocument. In

particular,if a malformed request is

detected,normal request processing

will be immediately halted and the

internal error message returned. This

is necessary to guard against security

problems caused by bad requests.

编辑:如何在Apache中模拟500错误.我的第一个想法是.htaccess中的语法错误,但这不会触发自定义错误处理程序.我发现最简单的方法是通过添加以下行来启用.htaccess中的CGI:

ErrorDocument 500 /500.PHP

Options +ExecCGI

AddHandler cgi-script .pl

然后添加一个崩溃的perl脚本:

#!/usr/bin/perl

safasfdsfdd_(*EYFIUOBAF(_*AS^FD_(*AWHD{

您需要确保perl脚本可以由apache的用户执行.这显示了我的自定义500处理程序.

但是,您在使用PHP时不太可能触发Apache 500,所以这可能不是一个有用的测试.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值