有人设置了一个CDN服务器,它将流量定向到我的服务器,并将主机头设置为与我的一个实际域相匹配。因此,Apache使用虚拟主机作为我的真实域名,而不是CDN域的主机名。
例如,URL是:
http://cdn.example.com/pictures/www.mydomain.com/images/product/6a/229326.jpg这个CDN似乎是一个正在覆盖主机头的代理。Apache将主机视为www.mydomain.com而不是cdn.example.com。
我想阻止这个流量,但是我不能通过主机或IP阻止(因为它改变了)。有一个主机头:
HTTP_X_FORWARDED_HOST=cdn.example.com有可能吗?
编辑:没有安装mod_security
发布于 2015-06-02 16:50:16
您可以使用mod_rewrite来完成此任务:
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Host} cdn.example.com
RewriteRule .* - [F]如您所见,如果使用curl进行测试,则拒绝访问:
[root@RPX conf]# curl -i -H "X-Forwarded-Host: cdn.example.com" http://localhost:80/algo/
HTTP/1.1 403 Forbidden
Date: Tue, 02 Jun 2015 16:49:37 GMT
Server: Apache
Content-Length: 207
Content-Type: text/html; charset=iso-8859-1
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
<p>You don't have permission to access /algo/
on this server.</p>
</body></html>https://serverfault.com/questions/696141
复制相似问题