通过Htaccess发送的自定义405错误消息不';发送PHP标头时不显示

通过Htaccess发送的自定义405错误消息不';发送PHP标头时不显示,php,.htaccess,http-headers,http-status-code-405,Php,.htaccess,Http Headers,Http Status Code 405,我通过返回405阻止对以下文件的直接访问,除非用户提交了带有以下代码的表单: <?php if ($_SERVER['REQUEST_METHOD'] !== 'POST') { header("HTTP/1.0 405 Method Not Allowed"); exit(); } else { if(isset($_POST['a'])){ switch ($_POST['a']) { case "1": $var = "

我通过返回405阻止对以下文件的直接访问,除非用户提交了带有以下代码的表单:

<?php
    if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
    header("HTTP/1.0 405 Method Not Allowed"); 
    exit(); } else {

if(isset($_POST['a'])){

    switch ($_POST['a']) {

    case "1":
        $var = "hey";
        break;

    case "2":
        $var = "now";
        break;

    default:
        $var = "other";
    }
  }
}
?>  
<!doctype html>
<html>
<head>
<title>test</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
something
</body>
</html>

测试
某物
由于Chrome和FF显示的是空白页而不是en错误(即使在我键入错误URL时,它们会显示404而不是空白页,所以我不确定这是如何工作的),因此我想创建一条自定义405消息,因此我已将这一行添加到我的.htaccess:

errordocument405/custom msg.php

然而,我仍然得到一个空白页,而不是自定义消息。
这里出了什么问题?

Apache没有设置为针对PHP设置状态代码的操作错误文档。与您的404问题类似,请尝试:

if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
header("HTTP/1.0 405 Method Not Allowed"); 
include 'custom-msg.php';
exit(); }

忽略前面的评论,让我再次检查:)谢谢,我想我也会在IE上看到这个,但是include只在FF/Chrome上工作,现在是统一的方式吗?你的定制-msg.php文件有多大?IE仅在由于某种原因超过512字节时显示响应:)x