ワイルドカード www から非 www へのリダイレクト nginx

ワイルドカード www から非 www へのリダイレクト nginx

すべてのトラフィックをリダイレクトしたい

www.*.*.<gTLD>*.*.<gTLD>

可能であれば、アプリケーションを提供するブロックの外部でこれを実行したいと思います。このブロックは、server_name同じアプリで 5,000 を超えるホスト名をリッスンするため、 を使用しません。

それを実現する方法についてのアイデアはありますか? 私が見つけた例はすべて、名前付きホストのみを対象としています...

ありがとう

答え1

server正規表現を使用してブロックを定義できますserver_name。例:

server {
    server_name ~^(www\.)(?<domain>.+)$;
    return 301 $scheme://$domain;
}

見るこのドキュメント多くのための。

答え2

@Richard Smith の助けを借りて、次のような結果が得られました:

server {
    server_name ~^(www\.)(?<domain>.+\..+\..+)$;
    return 301 $scheme://$domain;
}

うまく動作します:-)

関連情報