間違った http_host で Apache がエラーを返すようにするにはどうすればよいですか?

間違った http_host で Apache がエラーを返すようにするにはどうすればよいですか?

間違った場合はエラーを返す必要があります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やを入れないでください。ServerAliasVirtualHost

答え2

VirtualHost関心のあるホスト ヘッダーに一致する を作成し、必要なエラーを返すだけです。

関連情報