![如何让 Apache 在错误的 http_host 上返回错误?](https://linux22.com/image/632619/%E5%A6%82%E4%BD%95%E8%AE%A9%20Apache%20%E5%9C%A8%E9%94%99%E8%AF%AF%E7%9A%84%20http_host%20%E4%B8%8A%E8%BF%94%E5%9B%9E%E9%94%99%E8%AF%AF%EF%BC%9F.png)
我需要在错误时返回错误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
与您感兴趣的主机头匹配的主机头,然后返回您想要的错误。