【htaccess】ブログURLの「https&www」のリダイレクトを設定しよう!

ドメインの「SSL化」がすんだら、この作業を完了させる「リダイレクト」というものをやっておく必要があります。

レンタルサーバー側の設定でブログのURLは「https」にSSL化され、WordPress本体側の設定で「www」ありなしの統一は完了しましたが、これらの設定を締めくくる作業がまだ残っています。

それが、レンタルサーバーの「FTP」という機能でおこなう、「リダイレクト」という転送の設定作業です。

じつをいうと、SSL化がすんだ「http」のURLは、この段階ではまだそれにアクセスできるようになっていて、「www」ありなしのURLも、WordPress本体の設定だけではまれに転送されないケースもあるらしく、これらの転送先をそれぞれ指定しておかなければなりません。

そして、それができるのが「.htaccess」というファイルで、これをいじることでSSL化の作業もすべて完了となるので、今回はこのファイルがどこにあるのかという場所と、「https&wwwありなし」の、リダイレクトの書き方について解説していきます。

関連記事

SSL化と「www」の統一作業はこちら
【SSL化】ブログのURLを「https」に変えて「www」ありなしを統一する

URLのリダイレクトと「.htaccess」のファイル

用語がつぎつぎととび出してきているので、だんだんわけがわからなくなってきていることと思いますし、それに加えて、今回いじる「.htaccess」というものは、しくじるとやばい系のファイルのひとつなので、ゆっくりと作業を進めていきましょう。

まずは、前回から登場している「リダイレクト」について。

これは、「A」のURLのページにアクセスがあった場合は、「B」のURLのページが正しいので、「B」のほうにアクセスが行くようにしてくださいね、という、URLの「転送」、またはその仕組みのことで、WordPressが自動でおこなってくれるものもありますが(たとえば「www」ありなしなど)、「http https」は自動リダイレクトの対象ではありません。

そして、こういった(自動ではない)リダイレクトはどうすればいいのかという話になったときに出てくるのが、「FTP」というものの中にある「.htaccess」というファイル。

「FTP(File Transfer Protocol)」とは、ネットワーク上でファイルの送受信をする仕組み・決まりごとを指し、個人的には、WordPressのファイルがたくさんある場所、くらいの認識でいいと思いますが、この中に入っている「.htaccess(ドットエイチティーアクセス)」に決まりごとを書き込むことで、URLの転送や制御、つまり、リダイレクトを指定することができるというわけです。

まとめると、「http」を「https」に転送してもらうため、そして「www」ありなしの統一の保険のため、「.htaccess」にそれを書いておく、ということですね。

では、さっそく、これをいじっていきましょう。

ロリポップの「FTP」でリダイレクトを完了させる

ロリポップのFTP

まずは「ロリポップ! 」の管理画面にアクセスし、「サーバーの管理・設定」から「ロリポップ!FTP」へと進んでこれをクリック。

ロリポップのFTP設定画面

新しいタブでひらかれるこの画面がロリポップの「FTP」で、左上にいるサンタクロースこそが「ロリポおじさん」です。まあそれはどうでもいいことなので、さきに進みましょう。

この画面は「ルートディレクトリ」とよばれているもので、ここには独自ドメイン設定のさい、公開アップロードフォルダにつけた名前と同じ名前のフォルダが表示されていると思うので、それをクリックします。

ちなみに、その下にある「welcome.html」というものは消してしまっても問題はありませんが、これから「魔境」に入るので、それをするのは、ある程度「FTP」の使い方に慣れてからにすることをおすすめします。

ロリポップのFTPにあるフォルダ

フォルダをクリックすると、まずはこのような画面が表示されるので、そのまま下に画面をスクロール。

「.htaccess」のファイルの場所

WordPressで使われるいろんなフォルダやファイルの中に、「.htaccess」というものがあるはずなので、見つけたらこれをクリックしましょう。

WordPressの「.htaccess」の場所は、「FTP」で操作することができるフォルダの中にあるということですね。

「.htaccess」のファイルの中身

そして、さきほどと同じく画面をスクロールすると、「.htaccess」の中身(初期状態)が出てきます。

WordPressのものがすでに書き込まれていることと思いますが、ここに「https&www」のリダイレクトを書き込む、というのが今回の作業の目的です。

まずは、このファイルの中身をそのままコピーするなどして、メモ帳などでもいいので、かならず、どこかにバックアップを取っておきましょう。

万が一の話で、誤ってこれを消してしまったりすると、サイトへのアクセスが不能となってしまう場合もあるといいます。あまりおどかすようなことをいうのもあれですが、ここからの作業は、慎重に、それでいて気負わずにおこなうようにしてください。

また、ここに書き込むものは、いくつかのパターンがあるので、今回は3つのパターンを、その書き方とあわせてご紹介します。

(注:まちがえて「.htaccess」のファイルを削除してしまった場合は、WordPress本体の「パーマリンク設定」をなにもいじらずに空更新すれば、自動で初期状態の「.htaccess」のファイルが作成されるそうなので、万が一やってしまった場合は、そういった方法も試してみてください)

1. よく見る記述例(wwwのリダイレクトはなし)

httpからhttpsにリダイレクトさせる記述

今回の作業での基本的な書き方は、このように、最初から書かれているWordPressの部分に1行ぶんのスペースを空け、その上の1行目からリダイレクトを指定する記述を書き込むというもので、それが終わって最後に「保存する」をクリックすれば、この作業も完了です。

ここで書かれているのは、以下のとおりです。

<ifmodule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</ifmodule>

いろんなサイトで紹介されているコードで、これをそのままコピーしてはりつけておけば、「http」は「https」にリダイレクトされるようになります。

ただ、「www」に関してはふれられておらず、そちらのリダイレクトは、WordPress側で自動でされているので、正直いうとこれだけでも問題はないと思うのですが、万全を期すのであれば、「www」に関してもいっしょに書いておいたほうがいいかもしれません。

2. 当ブログで使わせてもらっているパターン

httpsとwwwなしにリダイレクト

当ブログでは後述する記事を参考にさせていただき、この記述で「https&wwwなし」へのリダイレクトをおこなってきました。とくに問題は起きていないように思われるので、両方を記述したいのであれば、こちらのほうがいいような気もします。

ここで書かれているのは、以下のとおりです。

RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://〇〇〇〇.com/$1 [R=301,L]
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.〇〇〇〇\.com)(:80)?
RewriteRule ^(.*) https://〇〇〇〇.com/$1 [R=301,L]

「〇〇〇〇.com」の3か所(末尾がドットコム以外の場合はそれも)を自身のブログのドメインに変更する必要がありますが、それだけやっておけば、あとはさきほどと同じく、WordPressの記述の上にはりつけるだけでOK。

(注:5行目は「www\.rabbit\.com」のように、「\:バックスラッシュ」を消さないようにしてください。変更する場所はあくまでも〇〇〇〇の部分と、「com」でなければその部分だけです)

ただし、これは「www」なしに統一するパターンのものなので、「www」ありにしたい場合は、内容をすこし変える必要があります。「www」ありパターンは、以下で紹介されているコードをご参照ください。

(参考:ウェブサイトはwwwありとwwwなしどちらで運用を行うべきか?

3. ロリポップ公式で紹介されているパターン

ロリポップ公式のリダイレクトの記述例

「https」へのリダイレクトと、「www」ありなしに統一する記述は、じつはロリポップ公式にも書かれていて、これがいちばんまちがいはない記述なのではないかと思います。

ここで書かれている内容は、以下のとおりです。

RewriteEngine On

# www無しのURLに統一
RewriteCond %{HTTP_HOST} ^www\.〇〇〇〇\.com
RewriteRule ^(.*) http://〇〇〇〇.com/$1 [R=301,L]

RewriteEngine On

# httpをhttpsに統一
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

これも「www」なしに統一するパターンのものですが、上のほうの「〇〇〇〇.com」の2か所(こちらもバックスラッシュを消さないように注意しながら、末尾がドットコム以外の場合はそれも)を変更してあげれば、あとはこれもはりつけるだけでOK。

「RewriteEngine On」の下のスペースや、「#」の行(コメントアウトといいます)は省略することもできるので、以下のような状態にすることもできます。

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.〇〇〇〇\.com
RewriteRule ^(.*) http://〇〇〇〇.com/$1 [R=301,L]

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

ちなみに、カスタマーサポートによると、記述を<ifmodule>~</ifmodule>で囲う必要はないそうで、「https」のほうの最後が [R=301,L] ではなく [R,L] となっているのも、このままでいいそうです。

というのも、「301」付きのものは、サイトの評価を引き継ぐ「301リダイレクト」というのですが、これもブログを立ち上げた時点であれば、評価を引き継ぐもなにもないと思われるので(そもそもの話、開設直後のブログにはまだ評価はなく、これが必要となるのは、サイトを移転するときなどの話だから)、「301」はなくても問題はないと考えられるから、とのことでした。

上の記述だけ「301」が付いているのは、そのリダイレクトが永久的(恒久的)につづくものであることを(わかりやすく)しめしているだけのものであって、じつをいうと、この場合はあってもなくてもどちらでもよく、いずれにしても、この記述で問題はないそうです。

(参考:ロリポップ-URLの書き換え

結論:正直いうとどれでもOK

最初からややこしい話をするのもあまりよくないと思うのですが、あとになって「いや、そんなことは聞いていないぞ!?」となってしまうのもどうかと思ったので、ここではあえてお話しすることにしました。

ただ、結論としては、どのパターンでも問題はないと思われるので、正直いうとどれでもだいじょうぶだと思います。

①のパターンで問題が起きたという話はいまのところ聞いたことがないですし、②のパターンは、実際に私がそうしていても問題は起きていません。③のパターンも、ロリポップの公式で紹介されているものなので、おそらくまちがいはないでしょう。

しかし、そうはいっても、選択肢があると決められなくなってしまうと思うので、今回はこうしましょう。

リダイレクトの記述は③のロリポップのものにする。

途中で「http」を「https」に変更する場合などは話が変わってくる可能性もありますが、まだなにもしていない最初の状態であれば、問題の起きようがないので、ここはロリポップの公式にしたがいましょう。

私も今回は、ロリポップで紹介されているものを使わせてもらうことにしましたよ。

今回のまとめ

・「http」から「https」はリダイレクトが必要
・「www」の統一はできれば記述したほうがいい
・ロリポップの公式にしたがうのがいちばんよさそう

途中、かなりややこしい話を出してしまいましたが、今回おこなった作業は、ロリポップの「FTP」から「.htaccess」のファイルをひらき、そこにロリポップの公式で紹介されていたリダイレクトの記述を書いただけです。

3番目のコードの〇〇〇〇部分を自身のドメインに変えて(「com」以外であればそれも)、ワードプレスの記述の上に1行空けてコピペするだけ。それだけです! とても簡単でしたね!?

最初はまちがえても、飛ぶデータもないのでだいじょうぶ。あまり緊張せずに、リラックスして作業を進めてみてください。

そして次回からは、いよいよWordPress本体の設定を始めていきたいと思いますので、こちらもどうぞお楽しみに。

スポンサーリンク
この記事をシェアする

コメントを残す

日本語が含まれない投稿は反映されませんのでご注意ください。なお、コメントは承認制となっているため、反映までにお時間をいただく場合などがございます。