如何让 Apache 在错误的 http_host 上返回错误?

如何让 Apache 在错误的 http_host 上返回错误?

我需要在错误时返回错误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>

只是不要将ServerNameServerAlias放在其中VirtualHost

答案2

只需创建一个VirtualHost与您感兴趣的主机头匹配的主机头,然后返回您想要的错误。

相关内容