ドメインごとに別のページを表示する方法です。 mod_rewriteを使ったサンプルは.htaccessに記述するものです。 mod_rewrite以外のサンプルはindex.cgiやindex.shtmlとでもして設置してください。 **mod_rewriteを使ったサンプル 特別な理由がない限りこの方法をおすすめします。 ライトでも使えます。コントロールパネルでそのドメインのフォルダを/に設定してください。 - foo.sakura.ne.jpでアクセスしたら、/bar/以下のディレクトリに振り分ける。 ---( RewriteEngine on RewriteCond %{HTTP_HOST} foo\.sakura\.ne\.jp [NC] RewriteCond %{REQUEST_URI} !^/bar/.* RewriteRule (.*) /bar/$1 [L] ---) ***現時点で判明している問題点 改良案募集中。 -どのエイリアスでアクセスしてもDOCUMENT_ROOTが同じ(コントロールパネルのエイリアスを使っても同じのようですが) -&verb(ErrorDocument)をカスタマイズしておかないと404などのエラーの画面でディレクトリ名がバレる。 -ディレクトリ名の末尾に / を付けないでアクセスするとリダイレクト先でディレクトリ名がバレる。 **wwwをつけてアクセスされたく無い場合のmod_rewrite設定。 ドメインごとの振り分けからは外れるが……さくらでドメイン取得したり、他社取得ドメインにさくらのDNSを設定すると余計にサブドメインwwwが設定されるので。 301でリダイレクトしないとGoogleにミラーサイト扱いされる可能性がある。 .htaccessに ---( RewriteEngine on RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC] RewriteRule ^(.*)$ http://example.com/$1 [R=301] ---) 逆にwwwを付けたい場合は上記を参考に考えよう。 **サンプル1(CGI) - hoge.netでアクセスしたら、hoge.htmlを表示する。 - foo.comでアクセスしたら、foo.htmlを表示する。 - その他でアクセスしたら、default.htmlを表示する。 ---( #!/usr/bin/perl print "Content-type: text/html\n\n"; %host=( 'hoge.net','hoge.html', 'foo.com','foo.html', ); if(!open(FILE,$host{$ENV{'HTTP_HOST'}})) { open(FILE,"default.html"); } while() { print; } close(FILE); exit; ---) SSIで動作させる場合は「print "Content-type: text/html\n\n";」の行を削除してtest.cgiとして設置する(ちなみに削除せず出力しても問題はない) index.shtmlは「」だけでOK! **サンプル2(CGI) - hoge.netでアクセスしたら、./hoge.htmlにリダイレクトする。 - その他でアクセスしたら、./foo.htmlにリダイレクトする。 ---( #!/usr/bin/perl $HOST1 = 'hoge.net'; $FILE1 = './hoge.html'; $FILE2 = './foo.html'; $HHOST = $ENV{ 'HTTP_HOST' }; if(index($HHOST,$HOST1)>=0){ print "Location: $FILE1 \n\n";} else{ print "Location: $FILE2 \n\n"; } exit; ---) **サンプル3(SSI) nantara.itacs.toかuntara.itacs.toでアクセスしたら、〜ですね:-)。を表示する。 good-b.ath.cxでアクセスしたら、よん・いち・にー・ろくっ。を表示する。 その他なら、へ?おいらこんなドメイン取ったっけ?を表示する。 ---( nantara.itacs.toか、untara.itacs.toですね:-)。 よん・いち・にー・ろくっ。 へ?おいらこんなドメイン取ったっけ?
---) **裏嫁ドメインセレクタ 隠蔽は別段悪事を働いているわけではなくとも運営の上では重要な要素。 先に公開したドメインセレクタの改良版を公開しておこう。実質10行。 EXEC CMD な SSI に拘るのは拡張性から。 ---( ----------------------------------------------------------- 【さくら向けドメインセレクタ】 (CGI版 Ver.2.00) by.裏嫁 #メンテナンスフリー(ドメイン名、ファイル名に依存しない) #index.htmlに「ドメイン名+拡張子」のファイルが展開される。 #「hogehoge.com」なら「hogehoge.com.html」を用意しておく。 #ご使用は自己責任で。exec cmd が有効なので取扱いは要注意。 ----------------------------------------------------------- [ds.cgi] cgi本体(属性:700) -------- #!/usr/bin/perl if(open(HFILE,$ENV{'HTTP_HOST'}.".html")){ print while(); close(HFILE); }else{ print "error404"; } exit(0); -------------------------------------------- [index.html] 偽装ファイル(属性:604) ------------ -------------------------------------------- [.htaccess] には以下を追加する ----------- AddType text/x-server-parsed-html .html --------------------------------------------[EOF] ---)