Xrea/Coreserverで「wwwなし」を「wwwあり」アドレスに転送する
いつものようにアクセスログを見てたら「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管理画面にアクセスして、「ドメインウェブ」の設定を開きます。
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コードが返っているか確認するのも良いでしょう。
ディスカッション