【问题标题】:how do i modify the first returned header on the fly如何即时修改第一个返回的标头
【发布时间】:2009-01-28 23:20:16
【问题描述】:

我的意思是 HTTP/1.1 xxx yyyyyyy

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

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

【问题讨论】:

  • 这是专门处理一个用户代理 {not IE} {a moblie transcoder},它不会将 403 文本传递给人类用户{并且 403 页面详细说明了如何取消-禁止自己}

标签: apache http


【解决方案1】:

那不是标题,它是状态行。

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

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

【讨论】:

  • 实际上没有所有用户代理栏 1 显示自定义 403 页面,该页面允许先前恶意和被禁止的 ip 通过 capacha 取消阻止自己,但“谷歌移动转码器”用户代理不会将 403 返回到它给的用户“页面不可用或服务器关闭”
  • 如果它{并且只有它}得到了“HTTP/1.1 200 OK”,它会显示“你的 ip 被列入黑名单,因为......以及如何重新获得访问权限”的文本" 页面谷歌移动转码器{以及坚持使用它的可怜的手机用户}是这样做的唯一原因
  • 目前我只是不禁止 {whitelisted} 这些 ip,但缺点是{几乎}所有收割机现在都在使用它来避免这些自动坏蜘蛛检测/防御系统
【解决方案2】:

您可以为您的 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");
}
?>

或者用你喜欢的语言做同样的事情。

【讨论】:

  • 它看起来是唯一的选择,但更喜欢默认服务 html 而不是 php,因为当 403 个请求中有 99% 转到以前被禁止和恶意机器人时,处理 php {from tests} 的开销非常大
  • 目前正在 www.alandoherty.net 上演示您的解决方案,是的,它确实允许在 Google 无线转码器 www.google.com/gwt/m 上呈现自定义 403 页面,但正在等待看看是否有人知道通过 http.conf mod_headers 或其他方法来做到这一点,如果不是,我会将您的答案标记为最佳
  • 当前的 php 解决方案明显较慢但工作 {offloaded user agent detection to apache for speed} httpd.conf "SetEnvIfNoCase User-Agent "Google\ Wireless\ Transcoder" google-proxy" 因此在 php "if ( isset($_SERVER['google-proxy'])) header("HTTP/1.0 200 OK");"因为它显着加速
  • 但 shtml 中的内容相同 每个请求的时间:0.880 [ms](平均) 每个请求的时间:0.880 [ms](平均,所有并发请求)vs php 每个请求的时间:1.170 [ms ](平均)每个请求的时间:1.170 [ms](平均,所有并发请求)
  • 听起来很有趣。我建议您也发布您的最佳解决方案作为答案,以便其他人可以更轻松地找到它!
猜你喜欢
  • 2012-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-03
  • 1970-01-01
  • 2021-09-13
  • 1970-01-01
相关资源
最近更新 更多