2016年12月29日木曜日

wwwなしのURL

ウェブサーバのホスト名は"www."で始まることが多いのですが、
別にルールがあるわけではなく、単なる慣例に過ぎません。
まあ昔はウェブサービスの他にもftpなどの複数サービスを
別々の物理マシンで立ち上げて直接公開してたなんていう
事情もあったりしたので、いまでも大代表のウェブサーバには
"www"がつくのが当たり前です。

しかし時代はスマートフォン全盛。
文字の入力がとにかく面倒です。
サーバの名前など短ければ短い程いいのです。
で、ドメイン名だけでウェブアクセスできれば楽になります。
例えばGoogleはドメイン"google.com"へのウェブアクセスを
"www.google.com"にリダイレクトして便宜を図っています。

リダイレクトに関しては以前PHPをかませる方法
紹介したことがあります。
この方法だとかなり高度なことを自由度高く実装することができ
とても便利なのですが、
本当に単純なリダイレクトだけでよければ
apacheの設定だけで実現可能です。
ということで今回はその方法を紹介します。

まずホスティングしたり自営したりしている
そのドメイン(サブドメイン)の権威DNSサーバに、
ホスト名がないときの応答としての
AレコードとAAAAレコードにウェブサーバのIPアドレスを、
またはCNAMEレコードでウェブサーバのホスト名を設定し、
その設定が反映されるまで待ちます。

ウェブサーバ(ここではUbuntu 14.04+Apache2)で
標準的かつ一般的な設定をしてる場合には
# cd /etc/apache2/sites-available
# cp www.<ドメイン名>.conf <ドメイン名>.conf
を実行し、
設定ファイル"/etc/apache2/sites-available/<ドメイン>.conf"で、
ServerName <ドメイン名>
RewriteEngine On
RewriteRule ^/(.*)$ http://www.<ドメイン名>/$1 [R=301,L]
となるように編集します。
最初の1行は既に存在する行の修正で、
あとの2行はVirtualHostの終了タグの直前に追加します。
最後に
# a2ensite <ドメイン名>
# service apache2 reload
を実行して完了です。
httpsなサイトの方も対応したければ同様に、
かつ証明書に関しては適切に設定すればいいでしょう。
最後に実際にウェブブラウザからアクセスして
期待通りの動作であることを確認するのを忘れずに。

0 件のコメント:

コメントを投稿