我在我的ubuntu机器上安装了apache2。由于我需要使用子域,我在站点中创建了一个适当的条目 - 可用,如下所示:
<VirtualHost *:80>
ServerName xxx.localhost
DocumentRoot /var/www/
</VirtualHost>
我还启用了mod_rewrite(并在我的sites-available / default文件中更改了“AllowOverride All”),但除此之外没有其他内容被更改。
我的.htaccess文件确实有效,我想处理一些错误代码。使用404这样做非常好,但由于某些原因,其他错误似乎不起作用。我最感兴趣的是处理错误400:
ErrorDocument 400 /400.php
ErrorDocument 404 /404.php
还有什么我应该看的吗?我似乎无法找到允许404的地方,而其他错误代码则没有。
答案 0 :(得分:3)
如果php返回400错误,那么php应该生成错误文档。
使用类似:
if( $someError )
{
http_response_code(400);
include("{$_SERVER['DOCUMENT_ROOT']}/400.php");
exit();
}
答案 1 :(得分:1)
虽然可以覆盖大多数错误消息,但在某些情况下,无论ErrorDocument的设置如何,都会使用内部消息。特别是,如果检测到格式错误的请求,将立即停止正常的请求处理并返回内部错误消息。这是防止由不良请求引起的安全问题所必需的。
尝试直接在httpd.conf
中添加它并重新启动Apache。