我需要在错误的http_host头上返回一个错误。 对于nginx我会写下面的configuration:
server { ## Deny illegal Host headers if ($host !~* ^(mydomain.com|www.mydomain.com)$ ) { return 444; } location / { proxy_pass http://app_server; ... } }
我该如何为Apache做同样的事情?
UPDATE
虽然虚拟主机的技巧确实有效,但我最终还是使用了RewriteRule:
RewriteEngine On RewriteCond %{HTTP_HOST} !^(www\.)?example\.com$ [NC] RewriteRule ^(.*)$ - [L,R=400]
这里是一个例子
<VirtualHost _default_:80> ErrorDocument 403 /403.html ErrorDocument 404 /404.html </VirtualHost>
只是不要把ServerName或ServerAlias放在这个VirtualHost里面。
只要做一个VirtualHost匹配你感兴趣的任何主机头,然后返回你想要的任何错误。