web-dev-qa-db-ja.com

Nginxのサブドメインへのリクエストを拒否するにはどうすればよいですか?

私の構成が次のようになっている場合

server {
  listen 80;
  server_name example.com;
}

subdomain.example.comへのリクエストを拒否するにはどうすればよいですか?

3
Tom
server {
    listen 80;
    server_name subdomain.example.com;
    deny all;
}

または、構成内の別のserverブロックで明示的に定義されたドメインに送信されなかったすべてのトラフィックをドロップする場合は、次のようにします。

server {
    listen 80 default_server;
    server_name _;
    deny all;
}
6
Shane Madden

サブドメインにトラフィックがある場合は、このようにすべてのリクエストをサブドメインからドメインにリダイレクトすることをお勧めします

        if ($http_Host != "example.com") {
            rewrite ^ http://example.com$request_uri permanent;
    }

サーバーセクション

SEOにやさしいです。

1
Artur Zh

Shane Maddenの答えが機能するか、非標準の応答コード444を使用して、ヘッダーを送信せずに接続を強制終了することもできます(ソース: http://wiki.nginx.org/HttpRewriteModule

特定のサブドメインをブロックするには:

サーバー{
 server_name subdomain.example.com; 
 return 444; 
}

または、他の場所で処理されていないすべてのサブドメインまたはドメインをブロックするには:

 server {
 server_name _; 
 return 444; 
} 

後者のオプションは、コンテンツを複製しているために検索エンジンのランキングに悪影響を与える可能性のあるドメインをブロックする場合に役立ちます。 (これは個人的な経験によるものです。)

1
Jaxbot