サポート
ドメインリダイレクト

ワイルドカードサブドメインリダイレクト: すべてのサブドメインをリダイレクトする方法

直接回答

ワイルドカードサブドメインのリダイレクトは、1つのルールでドメイン(*.oldbrand.com)のすべてのサブドメインを、サブドメインごとに1つずつではなく新しいアドレスへ送ります。これには2つの層が必要です。まず、すべてのサブドメインをリダイレクトできるサーバーへ送るワイルドカードDNSレコード(ホスト *)、次にそのサーバー上のリダイレクトルールです。通常はパスを保持する301を使います。Namecheap、CloudflareのRedirect Rule、自分で運用するNGINXやApacheサーバー、またはRedirHubのProおよびEnterpriseプランで設定できます。

ワイルドカードサブドメインは、1つずつ列挙できないほど多くのサブドメインがあるドメインで役立ちます。ユーザーが作成するサブドメイン、shop.、blog.、help. のホストを持つ古いブランド、あるいは今でも入力される টাইपोなどです。このガイドでは、ワイルドカードリダイレクトとは何かを説明し、その後で設定方法を4通り紹介します。パスに対するパターンルール(たとえば /old-blog/ 以下すべて)については、パスとサーバー向けのワイルドカードリダイレクトのガイドを参照してください。

Diagram of a wildcard subdomain redirect: shop.oldbrand.com/cart, blog.oldbrand.com/post-1 and anything.oldbrand.com reach the redirect server through a wildcard DNS record, and one 301 rule for *.oldbrand.com sends them to mybrand.com with the path kept

ワイルドカードリダイレクトとは?#

ワイルドカードリダイレクトは、1つの正確なアドレスではなくパターンに一致する1つのルールです。サブドメインの場合、パターンは *.oldbrand.com です。これは shop.oldbrand.com、blog.oldbrand.com、およびドメインの前に付くその他の名前に一致し、それぞれのリクエストを、選択した転送先へ 301(恒久的)または 302(一時的)ステータスで送ります。

ワイルドカードDNSレコードだけでは、何もリダイレクトされません。DNSは名前に対してどのサーバーが応答するかを決めるだけで、リダイレクトはそのサーバーから返されるHTTPレスポンスです。そのため、以下の各方法にはDNSの部分とルールの部分があります。次の点を覚えておいてください。

  • ルートは別です。 ワイルドカードレコードは oldbrand.com そのものはカバーしません。ルートは別のレコードとして追加してリダイレクトしてください。
  • 既存のサブドメインが優先されます。 独自のDNSレコードを持つサブドメイン(たとえば mail や www)は、ワイルドカードではなくそのレコードで応答されます。
  • より深い名前も一致することがあります。 たとえばNGINXでは、*.example.org は www.sub.example.org も一致します。
  • HTTPSには各名前ごとの証明書が必要です。 https:// と入力した訪問者は、リダイレクトサーバーがそのサブドメインをカバーする証明書を持っていない限り警告を目にします。Let's Encrypt のワイルドカード証明書は、DNS-01チャレンジでのみ発行できます。

オプション1: Namecheap のワイルドカードリダイレクト#

Namecheap では、ドメインが Namecheap BasicDNS、PremiumDNS、または FreeDNS を使用している場合、ワイルドカード URL Redirect レコードをサポートしています:

  1. Namecheap にサインインし、Domain List を開いて、ドメインの横にある Manage をクリックします。
  2. Redirect Domain セクションで、Add Wildcard Redirect をクリックします。
  3. Destination URL を入力し、Save Changes をクリックします。
  4. Advanced DNS タブを開き、ホストが * の URL Redirect レコードを見つけ、移転が恒久的な場合はそのタイプを Permanent (301) に設定します。Namecheap の Unmasked オプションは 302 です。

Namecheap によると、新しいレコードが反映されるまで通常約 30 分かかります。HTTPS については、Namecheap のガイドでは、HTTPS 経由で 2 つのドメイン間をリダイレクトするには両方に SSL 証明書をインストールする必要があるとされています。そのため、実際に頼る前に https:// のサブドメインでテストしてください。詳しくは、Namecheap redirect guide で HTTPS 側をより詳しく説明しています。

オプション2: ワイルドカードパターンを使った Cloudflare Redirect Rule#

ドメインの DNS が Cloudflare 上にある場合、Single Redirect ルールですべてのサブドメインに一致させることができます。Cloudflare はプロキシされているトラフィックにのみルールを適用するため、サブドメインにはプロキシされた DNS レコードが必要です(たとえば、プロキシをオンにした * レコード)。

  1. Cloudflare ダッシュボードで、Rules > Overview を開きます。
  2. Create rule をクリックし、Redirect Rule を選択します。
  3. When incoming requests match の下で Wildcard pattern を選択し、Request URL を https://*.oldbrand.com/* に設定します。
  4. Then の下で、Target URL を https://mybrand.com/${2} に設定し(${2} は 2 つ目のアスタリスクに一致したパスです)、ステータスコード 301 を選択して、クエリ文字列を保持するかどうかを決めます。
  5. Deploy をクリックします。

ターゲットで ${1} を使用すると、サブドメイン自体を再利用できます。たとえば https://mybrand.com/team/${1} のようにします。Cloudflare redirect guide では、単一ドメインのリダイレクトを手順ごとに説明しています。

オプション 3: 自分のサーバー上の NGINX または Apache#

ワイルドカード DNS レコード(*、A 型)をサーバーに向け、*.oldbrand.com をカバーする証明書をインストールしてから、1 つのルールを追加します。NGINX:

nginxserver {
    listen 443 ssl;
    server_name *.oldbrand.com;
    ssl_certificate     /etc/ssl/oldbrand-wildcard.pem;
    ssl_certificate_key /etc/ssl/oldbrand-wildcard.key;
    return 301 https://mybrand.com$request_uri;
}

Apache(仮想ホストに ServerAlias *.oldbrand.com を設定し、mod_rewrite を有効にした場合):

apacheRewriteEngine On
RewriteCond %{HTTP_HOST} ^(.+)\.oldbrand\.com$ [NC]
RewriteRule ^ https://mybrand.com%{REQUEST_URI} [R=301,L]

$request_uri と %{REQUEST_URI} はパスを保持するため、shop.oldbrand.com/cart は mybrand.com/cart に移動します。迷う場合は、最初は 302 でテストしてください。ブラウザは 301 をキャッシュするためです。

リダイレクトは機能していますか? ドメインを入力してください。ステータスコード(301 または 302)、遷移先、HTTPS が有効かどうか、そしてワシントン、フランクフルト、東京からの応答速度が表示され、過去 7 日間にテストされたすべてのリダイレクトと比較して順位が示されます。

リダイレクトをテスト

オプション 4: RedirHub によるワイルドカードサブドメインのリダイレクト#

RedirHub がリダイレクトを代行するため、サーバー、ワイルドカード証明書、プロキシは不要です。ワイルドカードサブドメインのリダイレクトは Pro および Enterprise プランに含まれています。

  1. RedirHub のダッシュボードで、新しい Domain Redirect を作成します。
  2. Redirect from に *.oldbrand.com と入力します。ルートも含めるには、同じリダイレクトに oldbrand.com を別の送信元として追加します。
  3. Redirect to に https://mybrand.com と入力します。
  4. Redirect type で、301 · Permanent(短期的な変更の場合は 302 · Temporary)を選択します。
  5. パス の下で、パスを維持する を選ぶと各旧URLが同じパスに着地し、すべてを1つのURLへ を選ぶとすべて1つのURLに集約されます。
  6. リダイレクトを作成 をクリックします。
  7. ホスト名 を開き、ホスト名を選択して DNSを接続 をクリックし、DNSプロバイダーの画面に表示されているレコードを追加します(手動)。その後、変更を行いました をクリックします。
  8. リダイレクト速度テスト でいくつかのサブドメインをテストします。各サブドメインで301が返り、正しい転送先が表示されるはずです。

RedirHub は、各サブドメインが初めて要求されたときに自動的に証明書を発行します。これが、接続されたすべてのドメインで利用できる 自動HTTPS です。Enterprise では、その代わりに1枚のワイルドカード証明書が *.oldbrand.com をカバーします。

各サブドメインをそれぞれのページへ送る#

ワイルドカードのソースは、宛先変数と組み合わせることがよくあり、1つのルールで各サブドメインを別々の場所へ送れます。{host.sub} は、要求されたサブドメインを挿入します:

textRedirect from: *.example.com
Redirect to:   https://www.example.com/team/{host.sub}

alice.example.com  →  https://www.example.com/team/alice
bob.example.com    →  https://www.example.com/team/bob

https://{host.sub}.new-brand.com を使ってサブドメインを新しいドメインに維持することもできます。パスを維持する設定は、新しいブランドへの サイト移行 でよく使われます。変数の一覧は 宛先URL変数 をご覧ください。

Namecheap、Cloudflare、あなたのサーバー、それとも RedirHub ですか?#

NamecheapCloudflare自分のサーバーRedirHub
DNSNamecheap の DNS を使用する必要がありますCloudflare の DNS を使用する必要があります(プロキシ有効)サーバーへのワイルドカード A レコードDNS はそのまま保持されます。変更されるのは Connect DNS に表示されているレコードのみで、メール(MX)は引き続き動作します
サブドメインでの HTTPS両方で SSL のインストールが必要ですプロキシ有効のホスト名については Cloudflare が処理しますワイルドカード証明書(DNS-01)を自分でインストールし、更新します各サブドメインごとに自動で発行・更新されます
Paths1つの宛先${1}、${2} を含むパターン書き換えルールパス、または {host.sub} のような変数を保持します
Network未公開Cloudflare のネットワークあなたのサーバーの場所各訪問者に近い130のグローバルなエッジロケーション(PoP)から配信
リダイレクトの種類301, 302, masked恒久的または一時的Any301、302、307、308 およびフレーム
Clicks表示されないルール外あなたのサーバーログボットを除外したクリック数とユニーク訪問者数、ドメインごとの上位リンク
Priceドメインに含まれる無料ルールのクォータは Cloudflare プランによって異なりますあなたのサーバーコストと時間Pro($119/月、14日間の無料トライアル)および Enterprise のワイルドカード

あなたのドメインがすでに Cloudflare のプロキシまたは Namecheap DNS 上にあり、ルールが1つだけ必要な場合は、そこでの無料オプションで十分です。RedirHub は、複数のドメインを一か所で管理したい場合、プロキシなしで各サブドメインの HTTPS を処理したい場合、または各サブドメインをそれぞれ別のページへ転送したい場合に、より適しています。一括 CSV インポートを使えば、残りのドメインのリダイレクトも一度に追加できます。

オンにする前に#

  • 恒久的な移転には301を使用し、最終URLに直接向けて、リダイレクトの連鎖が起きないようにします。
  • 新しいサイトに同じページがある場合は、パスを維持してください。すべてをホームページに送ると関連性が失われます。
  • ルートドメインとwwwもリダイレクトしてください。ワイルドカードはルートをカバーしないためです。
  • 作成したことのないものも含め、実際のサブドメインを http:// と https:// の両方でテストしてください。

よくある質問

ワイルドカードリダイレクトとは、1つのルールで *.oldbrand.com のようなパターンに一致させる仕組みで、1つの完全一致アドレスではありません。該当するすべてのサブドメインまたはURLは、選択した転送先に送られ、通常は恒久的な移動として301が使われます。

いいえ。ワイルドカードレコードは shop.oldbrand.com のようにドメインの前に付く名前には一致しますが、oldbrand.com 自体には一致しません。ルートドメインは別のレコードとして追加してリダイレクトしてください。RedirHub では、同じリダイレクトに2つ目の送信元として追加できます。

いいえ。ワイルドカードDNSレコード(ホスト *)は、各サブドメインに対してどのサーバーが応答するかを決めるだけです。リダイレクトはそのサーバーから返されるHTTPレスポンスなので、Namecheap、Cloudflare、自分のサーバー、またはリダイレクトサービスでリダイレクトルールも必要です。

はい。Cloudflare では一致したサブドメインをターゲットURL内の ${1} で再利用でき、RedirHub では {host.sub} 変数で挿入できます。例えば https://mybrand.com/team/{host.sub} です。

リダイレクト先のサーバーは、HTTPSで応答する前にそのサブドメインをカバーする証明書が必要です。自分のサーバーではワイルドカード証明書を使う、Cloudflareではプロキシ経由のレコードを使う、または各サブドメインの証明書を自動発行するリダイレクトサービスを利用してください。

Pro と Enterprise です。Core には含まれません。Pro には14日間の無料トライアルがあります。