Nig*_*awk 56 php header http-status-code-403
我知道你可以发送一个标题告诉浏览器这个页面是禁止的:
header('HTTP/1.0 403 Forbidden');
Run Code Online (Sandbox Code Playgroud)
但是,如何才能显示在服务器上为此类错误创建的自定义错误页面?
默认情况下,只是发送标题会显示一个白页,但我记得有一段时间后,您可以使用客户错误页面.有人知道吗?
ale*_*lex 56
发送标题后,只需回显您的内容即可.
header('HTTP/1.0 403 Forbidden');
echo 'You are forbidden!';
Run Code Online (Sandbox Code Playgroud)
Mar*_*ato 33
http_response_code是在PHP 5.4中引入的,使事情变得更容易!
http_response_code(403);
die('Forbidden');
Run Code Online (Sandbox Code Playgroud)
Ibr*_*ail 21
更改标题后包括自定义错误页面.
小智 19
为此,您必须先为浏览器说用户收到错误403.为此,您可以使用以下代码:
header("HTTP/1.1 403 Forbidden" );
Run Code Online (Sandbox Code Playgroud)
然后,脚本发送"错误,错误,错误,错误,错误.......",所以你必须停止它.您可以使用
exit;
Run Code Online (Sandbox Code Playgroud)
使用这两行,服务器发送错误并停止脚本.
不要忘记:模仿错误,但必须在.htaccess文件中设置它
ErrorDocument 403 /error403.php
Run Code Online (Sandbox Code Playgroud)
小智 7
看到了很多答案,但是正确的方法是按照php手册为标头函数调用提供完整选项
void header ( string $string [, bool $replace = true [, int $http_response_code ]] )
Run Code Online (Sandbox Code Playgroud)
如果您使用
header('HTTP/1.0 403 Forbidden', true, 403);
Run Code Online (Sandbox Code Playgroud)
将遵循使用Apache或任何其他服务器配置的HTTP 403的正常行为。
我已经阅读了这里的所有答案,但没有一个是针对我的情况的完整答案(在这个问题中完全相同)所以这里是我收集建议答案的某些部分并提出确切解决方案的方法:
在任何 HTML 输出或标题之前回显以下代码!(即使是空格也会导致 PHP 发送 HTML/TEXT HTTP 标头,它不会工作)下面的代码应该是你的第一行!
<?php header('HTTP/1.0 403 Forbidden');
$contents = file_get_contents('/home/your_account/public_html/domain.com/403.html', TRUE);
exit($contents);
Run Code Online (Sandbox Code Playgroud)现在您有了确切的解决方案。我检查并验证了 CPANEL 最新访问者,它被注册为精确的 403 事件。