KUSANAGIでwww有り無しをリダイレクト!Nginx環境のリダイレクトを徹底解説します!

ConoHa VPS www.リダイレクト記事用アイキャッチ

ConoHa VPSコノハ ブイピーエス KUSANAGIクサナギ環境を導入する時、簡単にKUSANAGI環境が構築できるKUSANAGI managerクサナギ マネージャーを使うとデフォルトでWebサーバーソフトウェアはNginxエンジンエックスというソフトです。

この弊害として、通常初心者でも始められるようなWordpressを始めるサイトで解説されているような。.htaccessドットエイチティアクセスを使ったリダイレクトは行えません

そこで、Nginxのconfファイルを編集し意図せずサブドメインにアクセスされた時に正しいURLへリダイレクトされるように設定していきましょう!

  • なぜwww有り無しをリダイレクトするか理由がわかる!
  • 実際にリダイレクトの設定ができる!
スポンサーリンク
スポンサーリンク

www有り無しをリダイレクトする理由

今回行うwww.付きのURLを無しにリダイレクトする、またはその逆をURLの正規化せいきかと言います。

まず明確にして置きたいのが、何故www有り無しのURLをリダイレクトし正規化するかという事。

わざわざサブドメインを別で設定しておかない限り、基本的にwww有りでアクセスしようが無しでアクセスしようがユーザーに表示される内容は同じです。

しかし実は放置しておくことは損でしかありません。

ConoHa VPSでKUSANAGI managerを使って環境構築した場合、デフォルトではwww.のサブドメイン付きのページは別のページとして扱われます(Nginxのようこそページが表示される)。
Nginxのエラーページが表示されるという事はサーバーソフトがNginxだとバレる事になり、Nginx特有の脆弱性ぜいじゃくせいが見つかった時に攻撃対象にされる恐れがありよろしくありません。
やはりURL正規化はやっておくべきです。

同じページなのにこの世に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の部分は適宜ご自身のドメイン名に読み替えて下さい。

その前にいつも通り、バックアップを取ってから作業をしましょう。

コマンド - cp

コマンド – cp

$ sudo cp -p /etc/nginx/conf.d/ドメイン名_http.conf /etc/nginx/conf.d/ドメイン名_http.conf.old

example.comは実際のドメイン名が入ります、123.netの人は123.net_http.confになります。

これでもしトラブルがあっても復元できますね。

ではいよいよ設定ファイルの編集です。

コマンド - vi

コマンド – vi

$ sudo vi /etc/nginx/conf.d/ドメイン名_http.conf

コマンドを実行すると以下のようなファイルが開きます。

#=======================================
# example.com
#---------------------------------------

server {
        listen 80;
        server_name example.com;
        access_log  /home/kusanagi/example.com/log/nginx/access.log main;
        error_log   /home/kusanagi/example.com/log/nginx/error.log warn;

        # rewrite ^(.*)$ https://example.com$request_uri permanent; # SSL ONLY
        charset UTF-8;
        client_max_body_size 16M;
        root  /home/kusanagi/example.com/DocumentRoot;
        index index.php index.html index.htm;

        location = /50x.html {
                return 403;
        }

この一番上に出てくる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有り無しどちらにするかによって該当する方を追記して下さい。

設定ファイル編集 - http.conf

設定ファイル編集 – http.conf

僕は基本的にwww無しにしているので、その場合最終的に上記のような感じになります!

緑色の部分が今回追記した部分ですね、もちろんexample.comの部分は適宜ご自身のドメインに置き換えて下さい。

当記事ではSSL化をしている事を前提にしているので、301リダイレクトの先もhttpsになっています。恐らく新しく始めるサイトでセキュア化しない、なんて事は無いでしょうが万が一httpのままが良ければreturn 301の後をhttpにして下さい。

ssl.confの編集

SSL化を実施している方はこちらも合わせてぱぱっとやっちゃいましょう!

同じ階層にあるドメイン名_ssl.confに追記します。

http.confと同様バックアップを取っていきます。

コマンド - cp

コマンド – cp

$ sudo cp -p /etc/nginx/conf.d/ドメイン名_ssl.conf /etc/nginx/conf.d/ドメイン名_ssl.conf.old

続いて編集をして行きましょう。

コマンド - vi

コマンド – vi

$ sudo vi /etc/nginx/conf.d/ドメイン名_ssl.conf

こちらも実行するとhttp.confに結構似たような文言が並んでいます。

server {
     listen       443 ssl http2;
     server_name  example.com www.example.com; #←ここにwww.付きのドメイン名を追記!

     ssl_certificate      /etc/letsencrypt/live/braveryk7.me/fullchain.pem;
     ssl_certificate_key  /etc/letsencrypt/live/braveryk7.me/privkey.pem;
     ssl_dhparam /etc/kusanagi.d/ssl/dhparam.key;

3行目の部分に追記しています。

こんな感じでwww.付きのURLを一緒に追記してあげればOK。

#の右側はコメントなので、あってもなくても良いですが.com後のセミコロン(;)は重要なので忘れないようにしましょう!

このように、#以降に書いた文字はコメントとして何を書いてもOKです。
先頭に#をおいてその行自体をコメントアウトする事もできますし、何らかの文の後に#を書いてそれ以降をコメントアウトすることも可能です。
言語によって変わってきますが、#以降がコメントになる言語は多いです(Unix系派生言語等)
ただしあくまでその行のみ、次の行にコメントをつらつら書いていくとエラーになるので注意して下さい。

nginx.serviceの再起動

それでは今編集した2つのファイルを反映させる為にNginxを再起動していきます。

コマンド - systemctl

コマンド – systemctl

$ sudo systemctl restart nginx.service

これで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超高速環境

ConoHa VPS まとめ記事用アイキャッチ

当記事はWordPressを超高速化できるWordPress専用仮想マシンKUSANAGIをConoHa VPSで初心者でも簡単に導入できるというコンセプトの1記事です。

手順通りに行えば誰でもKUSANAGI環境が実現できる!を目指して作成しました。

是非合わせてお読み下さい!

ConoHa VPS+KUSANAGIで始めるWordpress講座!初心者でもステップ形式で導入が可能です!KUSANAGI managerの使い方からコマンドまで全部解説
ConoHa VPSコノハ ブイピーエスにおけるWordpressワードプレス仮想マシン、KUSANAGIクサナギを1から導入するのは非常に大変な作業です。 しかしKUSANAGIクサナギ managerマネージャーというKUSANA...

コメント

タイトルとURLをコピーしました