てれび応援団 は覚えやすい日本語ドメインに対応しています。
試しに以下の URL にアクセスしてみてください。
不思議なことに http://www.tv-oendan.jp/ に接続されたと思います。
今回は、この動作に必要な DNS レコードと Apache の設定について簡単に解説します。
日本語ドメイン名の仕組み
日本語ドメイン名は、DNS やウェブサーバなど、既存の枠組みを変更することなく、クライアント上のアプリケーションの対応だけで実現できるように考慮されています。
- クライアントは日本語ドメイン名を、Punycode という形式に変換した上で、サーバへリクエストします。
- サーバは Punycode のままで処理を行いクライアントへレスポンスを返します
- クライアントは必要に応じて、Punycode を日本語ドメイン名に変換した上で表示を行います
例えば、「てれび応援団.jp」を Punycode に変換すると「xn--m9j0a0ev67qenjx3f.jp」となります。
このなんだかわからない文字列が、DNS サーバや Web サーバへのリクエストとして扱われるのです。
日本語 <-> Punycode の変換は、以下のページで確認することができます。
日本語ドメインの取得
まずは日本語ドメインを取得してください。
JPドメインの管理を行っている 日本レジストリサービス(JPRS)の以下のページが参考になると思います。
DNS の設定
日本語ドメインを取得したら DNS の設定を変更して、ご利用のウェブサーバのホストに紐づけてください。
ドメインを取得したサービス業者によって設定方法は異なりますが、我々が利用しているサービスではこんな感じの指定となります。
てれび応援団.jp CNAME www.tv-oendan.jp
このサービスでは日本語ドメイン名に対して A レコードを指定できなかったので、CNAME レコードを使っています。A レコードが指定できる場合には A レコードの指定をお勧めします。
また、サービス業者によっては Punycode 形式で指定する必要があるかもしれません。
DNS の設定の確認
無事に設定できたかどうかを確認してみましょう。
Punycode 形式で指定すれば、dig コマンドなどで DNS の登録状況を確認することができます。
$ dig xn--m9j0a0ev67qenjx3f.jp
; <<>> DiG 9.5.0-P2 <<>> xn--m9j0a0ev67qenjx3f.jp
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 5516
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 2
;; QUESTION SECTION:
;xn--m9j0a0ev67qenjx3f.jp. IN A
;; ANSWER SECTION:
xn--m9j0a0ev67qenjx3f.jp. 3600 IN CNAME www.tv-oendan.jp.
www.tv-oendan.jp. 3600 IN A 125.103.231.249
;; AUTHORITY SECTION:
tv-oendan.jp. 3600 IN NS 01.dnsv.jp.
tv-oendan.jp. 3600 IN NS 02.dnsv.jp.
;; ADDITIONAL SECTION:
02.dnsv.jp. 59799 IN A 210.172.129.69
01.dnsv.jp. 65476 IN A 210.172.129.68
;; Query time: 26 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Fri Mar 6 18:01:31 2009
;; MSG SIZE rcvd: 157
ANSWER SECTION に注目してください。
; ANSWER SECTION:
xn--m9j0a0ev67qenjx3f.jp. 3600 IN CNAME www.tv-oendan.jp.
www.tv-oendan.jp. 3600 IN A 125.103.231.249
1行目で、xn--m9j0a0ev67qenjx3f.jp が www.tv-oendan.jp の別名であること。二行目で www.tv-oendan.jp の IP アドレスが 125.103.231.249 であることがわかります。無事にアドレス解決ができているようです。
Apache の設定
バーチャルホストの設定をします。
私たちのポリシーでは、「てれび応援団.jp」でアクセスしてきた場合、「www.tv-oendan.jp」へリダイレクトするものとしています。
<VirtualHost *:80>
ServerName xn--m9j0a0ev67qenjx3f.jp
RewriteEngine on
RewriteRule ^(.*) http://www.tv-oendan.jp$1 [R=301]
</VirtualHost>
mod_rewrite を使い、「301: Moved Permanently」で www.tv-oendan.jp へと移動するように指定しています。ドメイン名をPunycode で指定する以外は特別なことは必要ありません。
日本語ドメインが有用かどうかは、私たちにはまだデータがなくて判断できませんが、そんなに高額なものではないので、ここはひとつ「景気回復の一助」だと思って投資してみるのも面白いのではないでしょうか。
補足
本文中では、わかりやすさを優先して「日本語ドメイン」と表記していますが、規格的には Internationalized Domain Name (IDN) として考慮されているものであり、日本語以外のドメイン名も同様に利用することができます。
具体例としては、以下のサイトが参考になると思います。
このページによると IDN 完全対応ブラウザであれば、以下のようなリンクを正しく処理できるそうです。
私たちのようなサービスを作る側としても、URL に使える文字について、いろいろと認識を改めないといけないですね。
