ConoHa VPSで 簡単にKUSANAGI環境を構築できるKUSANAGI managerを使うとデフォルトでWebサーバーソフトウェアはNginxというソフトです。
この弊害として、通常初心者でも始められるようなWordPressを始めるサイトで解説されているような。.htaccessを使ったリダイレクトは行えません
そこで、Nginxのconfファイルを編集し意図せずサブドメインにアクセスされた時に正しいURLへリダイレクトされるように設定していきましょう!
- なぜwww有り無しをリダイレクトするか理由がわかる!
- 実際にリダイレクトの設定ができる!
www有り無しをリダイレクトする理由
今回行うwww.付きのURLを無しにリダイレクトする、またはその逆をURLの正規化と言います。
まず明確にして置きたいのが、何故www有り無しのURLをリダイレクトし正規化するかという事。
わざわざサブドメインを別で設定しておかない限り、基本的にwww有りでアクセスしようが無しでアクセスしようがユーザーに表示される内容は同じです。
しかし実は放置しておくことは損でしかありません。
同じページなのにこの世に2つのURLが存在してしまう
最大の弊害として、全く同一のコンテンツが出力されるページにも関わらずこの世に2種類のURLが存在してしまう点です。
この大きな弊害として、検索エンジンの挙動が挙げられます。
検索エンジンはwww有りとwww無しを完全に別のページとして扱うため、同じコンテンツなのにそれぞれ違うページとして認識をします。
つまり検索エンジンから見た時のページの評価が単純に別れてしまい、中々検索エンジンに上位表示されない・・・といった状況が考えられます。
意図せず同一コンテンツ異URLになるだけで、SEO的な面でデメリットはあってもメリットはありません。
URLを正規化する事でこの同一コンテンツ異URLを防ぐことができます。
また、同一コンテンツ異URLという事はどちらか一方が転載コンテンツ(ようはパクリ記事)だと認識されるケースもあり、Googleのペナルティを受けるという最悪のケースが引き起こされる可能性もあります。
ブランドイメージの確立
小話程度のものなんですが、一昔前はWebサイトって大体www.というサブドメインが付いていました。
www.は明確にWebサイトである事を指し示すサブドメインなんですが、近年ではあえてwww.を使用しないWebサイトも増えてきています。
www.の有り無しで一度自分のドメインを見て、好きな方を採用すればいいかなーと思います。
ちなみに僕もちょっと前までwww.付きで運営する派だったんですが、近年立ち上げたサイトではwww.無しで運営しています。
当サイトはwww.付きで運営しています(みなさんが今見ているこのページのアドレスバーにもwww.が表示されていますよね)が、あってもなくてもいいならより短い方がいいよね、という理論ですね笑。
ここ数年は個人レベルのサイトはほとんどwww.無しのケースが多いんじゃないでしょうか。
ConoHa VPS+KUSANAGI manager環境のURL正規化
冒頭で説明したように、ConoHa VPSでKUSANAGI managerを使った環境を構築すると標準でNginxというWebサーバーソフトが実行されています。
このNginxはメジャーなサーバーソフトウェアであるApache設定ファイル(.htaccess)を使ったURLのリダイレクトが行えません。
なのでコマンド操作を行ってNginxの設定ファイルにリダイレクトの設定を書き足して行きます。
DNSの確認
その前に、DNSに正しくwww付きの設定がされているか確認して下さい。
いくらサーバー側で設定をしても、DNSの設定が正しくされていないとサーバーに辿り着けずリダイレクトのしようがありませんからね笑。
DNSの設定は以下で手順を紹介しています。
http.confの編集
Nginxの設定ファイルは/etc/nginx/conf.d/配下にあります。
まずは/etc/nginx/conf.d/ドメイン名_http.confから編集して行きましょう。
その前にいつも通り、バックアップを取ってから作業をしましょう。
example.comは実際のドメイン名が入ります、123.netの人は123.net_http.confになります。
これでもしトラブルがあっても復元できますね。
ではいよいよ設定ファイルの編集です。
コマンドを実行すると以下のようなファイルが開きます。
この一番上に出てくるserverの上に、以下の内容を追記します。
#www有りからwww無しにリダイレクトする場合
server {
listen 80 default_server;
server_name www.example.com;
return 301 https://example.com$request_uri;
}
#www無しからwww有りにリダイレクトする場合
server {
listen 80 default_server;
server_name example.com;
return 301 https://www.example.com$request_uri;
}
ご自身がwww有り無しどちらにするかによって該当する方を追記して下さい。
僕は基本的にwww無しにしているので、その場合最終的に上記のような感じになります!
緑色の部分が今回追記した部分ですね、もちろんexample.comの部分は適宜ご自身のドメインに置き換えて下さい。
ssl.confの編集
SSL化を実施している方はこちらも合わせてぱぱっとやっちゃいましょう!
同じ階層にあるドメイン名_ssl.confに追記します。
http.confと同様バックアップを取っていきます。
続いて編集をして行きましょう。
こちらも実行するとhttp.confに結構似たような文言が並んでいます。
3行目の部分に追記しています。
こんな感じでwww.付きのURLを一緒に追記してあげればOK。
#の右側はコメントなので、あってもなくても良いですが.com後のセミコロン(;)は重要なので忘れないようにしましょう!
nginx.serviceの再起動
それでは今編集した2つのファイルを反映させる為にNginxを再起動していきます。
これでNginxの再起動が完了しました。
サブドメイン有り無し、非SSLURLでアクセスしてみよう
ではここできちんと想定通りにアクセスできるか試してみましょう!
- http://example.com
- http://www.example.com
- https://example.com
- https://www.example.com
全てのURLでアクセスして、目的としたURLにアクセスできればOKです!
目的とした挙動にならなかったら
もし万が一リダイレクトが目的の挙動と違ったら、以下の事確認してみましょう。
- Nginxの再起動を行ったか
- 設定ファイル(http.conf/ssl.conf)の記載内容に間違いが無いか
- そもそもDNSの設定が正しいか
- Cookie・キャッシュのクリア(もしくは違うブラウザやスマホ等の別端末で一度アクセスしてみる)
大体がこの辺で解決すると思います。
どうしても解決しなかった場合、バックアップを取ったファイルを復元して最初からやり直す事をオススメします。
URL正規化は簡単だけどやっておけば安心!
URLの正規化は非常に簡単、設定ファイルに書き込んでNginxを再起動すれば基本的にOKです。
やっておかないと何らかの理由で意図しないURLにアクセスされた時機会損失ですし、万が一それが原因でGoogleのクローラー等に別のサイトとして認識されてしまっては目も当てられません。
10分も掛からずにできてしまう作業なので、是非ぱぱっと済ませてサイト運営を安泰な物にしていきましょう!
ConoHa VPS+KUSANAGIで始めるWordPress超高速環境
当記事はWordPressを超高速化できるWordPress専用仮想マシンKUSANAGIをConoHa VPSで初心者でも簡単に導入できるというコンセプトの1記事です。
手順通りに行えば誰でもKUSANAGI環境が実現できる!を目指して作成しました。
是非合わせてお読み下さい!
コメント