Xrea/Coreserverで「wwwなし」を「wwwあり」アドレスに転送する

WordPress

1日で解るHTML―WWWの基礎からCGI、JavaScriptまで

いつものようにアクセスログを見てたら「ime.nu/hide10.com/?p=9590」なリファラーを発見。どこに貼られたのか知らないが、また2chで参照されたっぽい。

それはさておき、このリンクだと「www」が付いていなくてドメインエラーが出ることが判明。せっかくのトラフィック倍増チャンスだし、早急に対策を打ってみたよ。

HTTPコードの説明

以前はこのページで、Xrea/Coreserverの「ドメインウェブ設定」で転送する方法を推奨していたんだけど、この方法はHTTP302ステータスを返すことが分かり、やり方を変更しました。

ナゼかというと、HTTP302コードは「一時的な移転」を示すモノなので、今回のように「wwwなしをwwwありに統一したい」という場合には向いてないと思うのよね。

と言うわけで、Xrea/Coreserverで「wwwなし」を転送する方法解説、改訂版です。このやり方ならHTTP301コードが返るので、ロボットなどに「恒久的な移転」と見なして貰えるはずだよ。

Xrea/Coreserverで「wwwなし」を転送する方法

ここでは当ブログのドメイン「www.hide10.com」を例に取り、「http://hide10.com/?p=11168」などのwwwなしアドレスを、「https://www.hide10.com/?p=11168」などのwwwありアドレスに転送する方法を説明します。

ドメインウェブの設定

Xrea/Coreserver ドメインウェブ設定画面

まずXrea/Coreserver管理画面にアクセスして、「ドメインウェブ」の設定を開きます。

Mainの項目は今まで通り「www.hide10.com」のままにしておき、Sub1のドメイン名を「hide10.com」と設定します。

最後に忘れず「ドメイン設定」ボタンを押してね。

.htaccessの設定

続いてpublic_htmlにある “.htaccess" に以下の記述を追加します。もし “.htaccess" が無いなら、新規にファイルを作成してね。

RewriteEngine on
RewriteCond %{HTTP_HOST} ^hide10\.com$ [NC]
RewriteRule .* https://www.hide10.com/ [R=301,L]

簡単に解説。

1行目は「mod_rewrite」というツールを使って、URLを書き換えますよ!と言う宣言です。

2行目は書き換えるURLの条件設定で、HTTPリクエストのhostアドレスを対象に、正規表現で「^hide10\.com」に合致する場合を定義しています。

3行目は実際の書き換えルールを定義しており、RewriteCondにマッチした全てのパターンにおいて、HTTP301コードで「https://www.hide10.com/hoge」に移転していることを通知します。

動作確認

転送設定が終わったら、正常に転送されることを確認しましょう。

実際にブラウザで「wwwなし」アドレスにアクセスして確認しても良いですし、「View HTTP Request and Response Header」などのHTTPリクエストビュアーを使って、wwwなしアドレスでのアクセスでは301コードが返っているか確認するのも良いでしょう。


参考リンク:RewriteEngine
参考リンク:View HTTP Request and Response Header
参考リンク:Apache module mod_rewrite