>我通过返回 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 错误(即使它们会显示 404 而不是空白页,以防我输入错误的 URL,所以我不确定这是如何工作的),我想创建自定义 405 消息,所以我将这一行添加到我的 .htaccess 中:
ErrorDocument 405 /custom-msg.php
然而,我仍然收到一个空白页而不是自定义消息。这是怎么回事?
Apache 没有设置为对 PHP 设置状态代码的操作错误文档。与 404 问题类似,请尝试:
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
header("HTTP/1.0 405 Method Not Allowed");
include 'custom-msg.php';
exit(); }