我如何动态修改第一个返回的标题

时间:2009-01-28 23:20:16

标签: apache http

我的意思是 HTTP / 1.1 xxx yyyyyyy

头 我可以用mod_headers修改所有其他人 但希望能够将403错误页面的状态200返回给特定的用户代理,该用户代理不显示我的403页面的文本{显示备用页面}

只是询问是否有人知道env-var或头名称我可以在apache.conf中更改以任何方式更改此标头{一旦我有了我可以解决它使用户代理特定位

2 个答案:

答案 0 :(得分:1)

这不是标题,而是状态行。

说谎响应的状态通常会导致问题,例如,链接检查程序会错过报告此类错误。你依靠人类阅读200页并理解它,但计算机协议的全部意义在于它们也可以被计算机理解。您应该尝试修复问题而不是隐藏它。

听起来像是你遇到了Internet Explorer对“友好”错误页面的坚持。您可以通过填充错误页面来解决这个问题,使其大于512字节,这会导致Internet Explorer显示错误页面而不是自己的错误页面。

答案 1 :(得分:0)

您可以为403错误页面设置php脚本,并使用该脚本修改标题:

在.htaccess或Apache配置文件中添加如下所示的行:

ErrorDocument 403 /path/to/your/error/script.php

以下所述的php文件:

<?php
if($_SERVER['HTTP_USER_AGENT'] == 'FooBot 1.2') {
  header("HTTP/1.0 200 OK");
}
?>

或者用您的首选语言做同样的事情。