ワイルドカードDNSと動的サブドメイン

私の暇な時間(ha!)のすべてで、私はラップするために働いてきました 野鳥無制限マップ 人々が独自の店舗検索を設計できるようにするエンタープライズアプリケーションを備えたアプリケーション。 私自身のSoftwareas a Serviceソリューションを開発することは、かなりの数年間私の目標であり、これは素晴らしい機会です。

私がアプリケーションに入れたかったXNUMXつの重要な機能があり、それらは大きな課題であることが判明したので、同じことをしたいと思っている場合に備えて、それらについて話し合いたいと思いました。 どちらの機能もアプリケーション全体で一般的ですが、一般的であるにもかかわらず、多くのホスティングプロバイダーが実際にはサポートしていないことがわかりました。

私の目標は、クライアントが独自のサブドメインを構成できるセルフサービスアプリケーションを構築することです(http://サブドメイン.myapplicationdomain.com)、または独自のサブドメインを適用する(http://サブドメイン.yourdomain.com)。 セルフサービスであるためには、ソリューションをプログラムする機能が必要ですが、ホスティングアカウントの大部分で立ち入り禁止のドメインネームサーバー構成ファイルにアクセスします。 問題は、ワイルドカードDNSのサポートです。つまり、任意のサブドメインをサーバーのドメインにポイントできるようにすることです。 つまり、test.domain.com、www.domain.com、any.domain.comはすべて同じ場所を指しています。 あなたが何を書いても–それはうまくいくでしょう。

アプリケーション以外では、これは実際に有効にした非常に優れた機能です– あなたのブログでも。 それは誰でも書くことを可能にするでしょう 何でも.yourdomain.com に持ってきて yourdomain.com。 あなたのブログやウェブサイトを指し示す悪いリンクがいくつもあることに驚かれることでしょう。 それがリンクのエラーであることを人が認識しない場合、それはトラフィックを逃す可能性があります。

このプロセスは、ページが実際にWebサーバーによってレンダリングされる前に、サブドメインをクエリ文字列に書き換えることによって機能します。したがって、subdomain.domain.comは、htaccessファイルを使用してApacheサーバーによってdomain.com?what = subdomainとして実際に解釈されます。

#domain.comのサブドメイン部分を抽出します
RewriteCond%{HTTP_HOST} ^([^ \。] +)\。yourdomain \ .com $ [NC]
 
#サブドメイン部分がwww、ftp、mailではないことを確認してください
RewriteCond%1!^(www | ftp | mail)$ [NC]
 
#すべてのリクエストを、サブドメインを引数として渡すphpスクリプトにリダイレクトします
RewriteRule ^。* $ http://www.yourdomain.com/%1 [R、L]

編集する必要のあるファイルに関する追加情報がいくつかあります。 V-nessa.net。 ホスティングプロバイダーによっては、指定された場所にファイルが配置されていない場合があることに注意してください。 私のホスティングプロバイダーは実際に干渉する人々を非常に支援していますが、そうするとカスタマーサポートが無効になる可能性があると警告しています。 「自分の責任でハッキングする」だけでなく、彼らもあなたを助けるために手を差し伸べるつもりはありません。

サブドメインの開発にとらわれるのではなく、アプリケーションの残りの部分の開発に取り組みます。 私は実際に与えるつもりです CakePHP そのためのフレームワークとして使用するショット!

最後に、私はこのようなものを少しハックしています。 私はこのことを理解するために私の仕事で開発チームに恵まれています。 私自身、少し危険です。 フィードバックやヘルプをいただければ幸いです。

3のコメント

  1. 1

    とてもかっこいい。 SliceHostを使用していたときに、実際にレジストラのネームサーバーをワイルドカードDNSで使用し、通常のドメインファイルから未構成のサブドメインを提供するようにApacheを構成しました。

    私はCakePHPフレームワークを見ることに本当に興味をそそられました、しかしあなたのリンクは死んでいます🙂

    CakePHPはで見つけることができます http://cakephp.ORG

    • 2

      アレックス、レジストリルートにも行くことを考えていました。 これは素晴らしいアイデアです。おそらくこれを処理するための最良の方法です。

      デッドリンクについて申し訳ありません-それは現在修正されています。

  2. 3

    これを可能にするプロバイダーを見つけることができましたか? (専用サーバーを借りる場合を除く)

どう思いますか?

このサイトはAkismetを使用して迷惑メールを減らします。 コメントの処理方法を学ぶ.