私の構成が次のようになっている場合
server {
listen 80;
server_name example.com;
}
subdomain.example.comへのリクエストを拒否するにはどうすればよいですか?
server {
listen 80;
server_name subdomain.example.com;
deny all;
}
または、構成内の別のserver
ブロックで明示的に定義されたドメインに送信されなかったすべてのトラフィックをドロップする場合は、次のようにします。
server {
listen 80 default_server;
server_name _;
deny all;
}
サブドメインにトラフィックがある場合は、このようにすべてのリクエストをサブドメインからドメインにリダイレクトすることをお勧めします
if ($http_Host != "example.com") {
rewrite ^ http://example.com$request_uri permanent;
}
サーバーセクション
SEOにやさしいです。
Shane Maddenの答えが機能するか、非標準の応答コード444を使用して、ヘッダーを送信せずに接続を強制終了することもできます(ソース: http://wiki.nginx.org/HttpRewriteModule )
特定のサブドメインをブロックするには:
サーバー{ server_name subdomain.example.com; return 444; }
または、他の場所で処理されていないすべてのサブドメインまたはドメインをブロックするには:
server { server_name _; return 444; }
後者のオプションは、コンテンツを複製しているために検索エンジンのランキングに悪影響を与える可能性のあるドメインをブロックする場合に役立ちます。 (これは個人的な経験によるものです。)