我需要在错误时返回错误http_主机标头。对于 nginx,我将编写以下配置:
server {
## Deny illegal Host headers
if ($host !~* ^(mydomain.com|www.mydomain.com)$ ) {
return 444;
}
location / {
proxy_pass http://app_server;
...
}
}
我怎样才能对 Apache 执行同样的事情?
更新
尽管使用虚拟主机的技巧确实有效,但我最终还是选择了 RewriteRule:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^(www\.)?example\.com$ [NC]
RewriteRule ^(.*)$ - [L,R=400]
答案1
这是一个例子
<VirtualHost _default_:80>
ErrorDocument 403 /403.html
ErrorDocument 404 /404.html
</VirtualHost>
只是不要将ServerName
或ServerAlias
放在其中VirtualHost
。
答案2
只需创建一个VirtualHost
与您感兴趣的主机头匹配的主机头,然后返回您想要的错误。