バリュードメイン XREAサーバー で無制限にサブドメインを増やす

XREAでは独自ドメイン・サブドメインなどの合計設定数が20個までです。
この枠を超えてドメイン数を増やす事は無理ですが、 サブドメインに関してはちょっとした工夫だけで無限に増やす事ができます。

CGIを使って行う方法は、ちょっとあれこれ使い方と説明が面倒なので、
ここでは、初心者でも簡単にできるただの整理するだけの方法を説明します。

独自ドメイン
借りてる提供サブドメイン(有料サーバー付属)
どちらの、ドメインアドレスについても可能です。
※提供サブドメインの場合は、サブ・サブドメインと言う形になります。

※説明文中に「artemis.ac」が頻繁に出てきますが、
これは私が当時使っていたドメインです。
現在の所有者とは一切関係ありません。

工夫だけで無限サブドメイン

ちょっとでもわかる人なら上のメニューを見ただけで自分でできるはずです。
必要に応じて設定変更と、簡単な理屈がわかれば初心者でもすぐ可能です。

■ 1.DNS設定でワイルドカードにする
独自ドメインを利用してる方のみの設定確認と変更です。

バリュードメイン側の独自ドメインのDNS設定で
a @ 000.000.000.000
の様になっている場合、
a * 000.000.000.000
とする事で、全ての呼び出しがサーバーに向きます。
※IPに関してはサーバー毎に違うので000.000.000.000としてあります

独自設定をしてない場合は
セレクトボックスで自分のサーバー番号を選ぶだけで
a * 000.000.000.000
mx @ 10
txt @ v=spf1 ip4:000.000.000.000 ~all
となり、全ての呼出がサーバーまで通ります。
この状態にしてください。

■ 2.default を使って全てを受け取る
defaultと言うのは、 それより前の設定で設定の無い全てのサブドメインを受け取れる特殊なサブドメイン名です。 サブドメイン無しの状態は受け取れません。

現在、独自ドメインでサブドメインを使っている場合や 提供サブドメインでサブサブドメインを使っている場合は、 それらすべのてリストより下に、この default と言うサブドメイン名の設定を入れます。

例:
独自ドメイン artemis.ac
提供サブドメイン abc.xrea.jp
それぞれ、既にサブドメイン名、サブサブドメイン名を利用してるとします。


◆今までの状態を残して、追加で無限サブドメイン利用にする場合
(今までのコンテンツの変更をせずに済みますからこちらを推奨)

◆今までの状態も含め全てを無限サブドメイン利用にする場合
(今まで使っていたサブドメインのコンテンツ内の書換えが必要になる)

◆私ならメインは通常の方法、それ以外を無限サブドメインの方法にします。


■ default 用のディレクトリを用意する
どの場合も、通常の設定に従い新しく設定した default.********** 用に
その名と同じディレクトリをpublic_html直下に作ります。
上の例であれば
public_htmlの中(下)に
default.abc.xrea.jp
default.artemis.ac
と言う名前のディレクトリを作ります。

これで、設定に無いサブドメイン(サブサブドメイン)での呼び出しは、 全て default のディレクトリ内のコンテンツが呼び出される事になります。

■ 3.各サブドメイン専用ディレクトリを作って振り分ける
ここから先は、自分の管理のしかた1つの世界です。
例(サンプル)として default.artemis.acを使って説明します。
独自ドメインの方はこれを自分の独自ドメインに置き換えて考えてください。 提供サブドメインの、サブサブドメインとしてこの方法を使う場合は、自分の借りてる提供サブドメインとこれを置き換えて考えてください。

◆ [ default.artemis.ac ] 直下は空き家にする
設定されて無い全てのサブドメインが呼び出された場合
全てこの default.artemis.ac というディレクトリ内のファイルが呼び出されます。

例えば
http://aaa.artemis.ac/
http://bbb.artemis.ac/
http://ccc.artemis.ac/
どの呼び出し方をされても、default.artemis.acディレクトリ内の インデックスファイル(通常index.html)が呼び出される事になります。
しかし、この部分はどのサブドメイン名で呼び出される可能性もあるので、 利用しないようにして何もファイルを置かず403Fobiddenにしておくか、 空のindex.htmlを置いておきます。

◆ [ default.artemis.ac ] 直下に各サブドメイン専用ディレクトリを作る
直下にはファイルを置かない状態にして、ここに自分が利用するサブドメイン名専用の運用ディレクトリを作り、 自分の中で決まり事にします。
例えば
http://aaa.artemis.ac/ → ディレクトリ aaa
http://bbb.artemis.ac/ → ディレクトリ bbb
http://ccc.artemis.ac/ → ディレクトリ ccc
※このディレクト名は自分でルールを決めてください。
それぞれなんでもOKですが、サブドメイン名と同じにすると整理しやすい。

これらのサブドメイン毎の呼び出しを専用利用するには
aaa.artemis.ac を利用する時は
http://aaa.artemis.ac/aaa/ ホームディレクトリと考えて、
全てこのaaaの中や下層にコンテンツを置き、常に http://aaa.artemis.ac/ では無く http://aaa.artemis.ac/aaa/ をこのサブドメイン付呼び出しアドレスの最上層として利用します。

同じ様に

bbb.artemis.ac を利用する時は
http://bbb.artemis.ac/bbb/ ホームディレクトリと考えて、
全てこのbbbの中や下層にコンテンツを置き、常に http://bbb.artemis.ac/ では無く http://bbb.artemis.ac/bbb/ をこのサブドメイン付呼び出しアドレスの最上層として利用します。
この様に本来の最上層である default.artemis.ac を使わず、 1階層深い場所を別々の呼び出し専用のホームディレクトリとして使い分ける事で、 それぞれのサブドメインアドレスで呼ばれたコンテンツを自分のルールに則って表示させる事ができます。

ここで疑問が残ると思います。例えば、
http://aaa.artemis.ac/bbb/ でも、 呼び出しのサブドメイン名に関係なくbbb.artemis.ac用の bbbディレクトリのコンテンツが表示されてしまうと言う事。

これに関しては、リンクや画像などの場所で 何処にも書かれていないアドレスが、いちいち探される事は無いので気にしなくて大丈夫です。
わざわざ、何処にも書かれていないアドレスをテストする人もいるでしょうが、 これは気にするほどの事ではないと思っています。
以上で、初心者でもごく簡単に無限数のサブドメインを運用できます。

■ 4.htaccessで 専用コンテンツ化する
前項3の最後の部分の疑問点
http://aaa.artemis.ac/bbb/
でも、bbb.artemis.ac 用のコンテンツが見えるのを防ぐ為に、各専用ディレクトリに .htaccessを置いて制御をしてしまいます。
例えば aaa.artemis.ac専用ディレクトリには
SetEnvIf HOST "^aaa\.artemis\.ac$" throughpass
Order Deny,Allow
Deny from all
Allow from env=throughpass

これで、各専用コンテンツが呼び出された時のリクエストのホスト名までそろわないと、アクセス拒否する事ができます。 この例では aaa.artemis.ac以外の場合は拒否されます。


2008.06.22
今まで次の5の方法を通常の方法として書いていましたが、htaccessで簡単にできるじゃないか・・・って事で htaccessを使う方法を通常の方法とし、5の方法は必要な場合のみと言う事になります。
XREAとコアサーバーで実際にテスト済みです。 独自ドメインのサブドメインと、借りたサブドメインのサブサブドメインでテスト済みです。
※コアサーバーはドメイン、サブドメインン設定は無制限(9999個)です。


■ 5.別の方法で 専用コンテンツ化する
4の方法で何らかの問題が出る場合などは、各ファイル側で対処する事も可能です。 ただし、ファイルがPHPである必要があるので画像ファイル等はhtaccessを使うか、PHP経由で排出するようにするなどの工夫をしなければいけないですね。
http://aaa.artemis.ac/bbb/ でも、 呼び出しのサブドメイン名に関係なくbbb.artemis.ac用の bbbディレクトリのコンテンツが表示されてしまうと言う件。
これを全てのHTMLファイルをPHPファイル化させて回避させる事ができます。

◆手順1 .htaccess ファイルを置く
あとの手順で行いますが全てをPHPファイルにします。 従ってディレクトリ名で呼ばれた時のディレクトリンデックスファイルも、 index.html ではなく、 index.php となります。 XREAサーバーは標準で 、 index.php ファイルが登録されていないと思うので、 これを 、 .htaccess ファイルを置いて登録します。
置く場所は、default を受け入れる一番上のディレクトリ、 前述までの例であれば default.artemis.ac 直下 です。
ファイル名 .htaccess はwindows上では拡張子のみと判断されて作れません。
適当なテキストファイルを作りアップロードして、 .htaccess に変更してください。
記述する内容は次の1行だけで良いです。
DirectoryIndex index.php index.html index.htm
既に.htaccessファイルが用意している場合は、この一行 または index.phpをDirectoryIndexのリストに加えてください。

◆手順2 共通エラードキュメント
default を受け入れる一番上のディレクトリ、 前述までの例であれば default.artemis.ac 直下 に、 404.php と言うファイルを置きます。 これは、IE以外のブラウザで 404 NotFoundを確実に表示する為の物です。 全ての場所で同じ物を使えるので、ここに設置します。
ファイルの内容は
<?php
echo <<<EOF
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<HTML><HEAD>
<TITLE>404 Not Found</TITLE>
</HEAD><BODY>
<H1>Not Found</H1>
The requested URL {$_SERVER['REQUEST_URI']} was not found on this server.<P>
<P>Additionally, a 404 Not Found
error was encountered while trying to use an ErrorDocument to handle the request.
</BODY></HTML>
EOF;
?>

◆手順3 全てのHTMLファイルをPHPファイルに変更
各サブドメイン呼出専用ディレクトリ(例:aaa)の中に置く HTMLファイルの拡張子をすべて .php に変更します。 phpに変更しても普通にHTMLファイルとして表示されます。
全てのPHPファイル(中身のHTMLソース)の最上段(DOCTYPE宣言より上)に次の内容を書きこみ、 必要な箇所を自分のドメイン名、サーバーアカウントに合わせて変更します。 上に空行などを開けず必ず0行目から書き込んでください。
<?php
if($_SERVER['HTTP_HOST'] != 'aaa.artemis.ac'){
header("HTTP/1.0 404 Not Found", true, 404);
include('/virtual/サーバーアカウント/public_html/default.artemis.ac/404.php');
exit;
}
?>
これは、artemis.ac の全サブドメイン受け取り default.artemis.ac の中で、 aaa.artemis.ac で呼び出されるディレクトリ(aaa) より下層にあるファイルのケース。
aaa.artemis.acの部分
そのファイルが呼び出される、サブドメイン付のドメイン名です。
bbb.artemis.ac で使用する bbb より下層にあるファイルの場合はココを bbb.artemis.ac に変えます。

サーバーアカウントの部分
この行は内部絶対パスの指定ですので、サーバーアカウント名をココに入れます。

default.artemis.ac
全サブドメインを受け取る一番上のディレクトリ名です。

完了
これで、本来
http://bbb.artemis.ac/bbb/

で呼び出され閲覧できるファイルを
http://aaa.artemis.ac/bbb/
で呼び出すと、エラードキュメントが呼び出され404 NotFound (ファイルがありません) と表示されるようになります。

PHPのheaderに関しては、多分 正しく サーバーステータスコード 404を返してくれると思いますので、 万一 予定外のアドレスで検索ボットなどがアクセスしてくる事があっても、無い物として扱われると思います。 ま、使わないアドレスを突然ボットが調査しに来る事は無いと思いますけど。


XREA・CORE サーバーについて
ユーザー登録〜アカウント取得〜契約〜DNS設定まで
サーバー基本設定と応用編(ケーススタディ)
・XREAで無限サブドメイン
その他の疑問・質問
XREA・COREサーバーでMovableType4を設置



専用ページから申し込むと
So-netより高い3万円CB

案ずるより産むが易し
使ってみれば疑問も解決

XREA+ (plus) 206円/月
( お試し7日間 )

CORE SERVER 428円/月
( お試し15日間 )

ロリポップ 270円/月
( お試し期間10日間 )

ヘテムル 1620円/月
( お試し期間15日間 )

さくら 129円/月
( お試し期間2週間 )

無駄な高額ドメイン管理料金払ってませんか?

バリュードメイン
ムームードメイン