首页 > 解决方案 > 不以正斜杠 / 开头的 Apache 访问日志请求

问题描述

我遇到了一个 IP 地址/未知机器人,它发出了四个 HTTP 请求,设法以以下方式请求四个不同的域名,第一个字符不是正斜杠 /:

"GET www.example.com

当我测试请求时,http://localhost/www.example.com我在 Apache 中看到以下内容:

"GET /www.example.com

所有其他请求都以正斜杠开头。机器人是如何提出这样的请求的,我如何重现这个以确定如何处理这样的请求?

引用的 Apache 日志减少为请求方法和 URL,以避免偏离主题的评论。

标签: apachehttpurl

解决方案


根据HTTP 请求的工作方式,这可以通过向您的 IP 地址发送原始 HTTP 请求并指定上面链接页面中所述的GET和标头来实现:Host

Request-URI 最常见的形式是用于标识源服务器或网关上的资源。在这种情况下,URI 的绝对路径必须作为 Request-URI 传输(参见第 3.2.1 节,abs_path),并且 URI(授权)的网络位置必须在 Host 头字段中传输。例如,希望直接从源服务器检索上述资源的客户端将创建到主机“www.w3.org”的端口 80 的 TCP 连接并发送以下行:

   GET /pub/WWW/TheProject.html HTTP/1.1
   Host: www.w3.org

然后是请求的其余部分。注意绝对路径不能为空;如果原始 URI 中不存在任何内容,则必须将其指定为“/”(服务器根目录)。

这可以在 Windows 上使用 PuTTY 或在 Linux/Mac 上使用nc(有关更多详细信息,请参阅此处的答案:https ://stackoverflow.com/a/3620596/1038813 )


推荐阅读