WordPressをSSL化してhttpsに変更したはずなのに、「http://〜」のURLでアクセスしたらそのまま表示されてしまった…という経験はありませんか?
実は、サーバー側でSSLを設定してWordPressのURL変更をしただけでは、古いhttp://のURLは自動的にhttpsへ転送されません。「301リダイレクト」の設定が別途必要です。
この記事では、SSL化後に必要な301リダイレクトの設定方法を、エックスサーバーでの.htaccess編集を中心に解説します。
SSL化自体がまだ済んでいない方は、先にこちらをどうぞ。
→ エックスサーバーでWordPressをSSL化する方法|httpからhttpsへ変更する手順と注意点
これからWordPressブログを始めるなら、無料SSLが使えるレンタルサーバーを選んでおくと後が楽です。
私はエックスサーバーでSSL化しました。
1. SSL化しただけではhttpのURLが残ることがある
Xserverで独自SSLを設定し、WordPressの「設定>一般」でアドレスをhttpsに変更すると、サイト自体はhttpsで表示されます。
しかし、これだけでは「http://example.com/」と「https://example.com/」という2つのURLが同時に存在している状態になります。httpのURLにアクセスしてきた人は、httpsへ転送されずそのまま表示されてしまうことがあります。
この問題を解決するのが、httpからhttpsへ自動転送する「301リダイレクト」の設定です。
2. 301リダイレクトとは?
「301リダイレクト」とは、あるURLに来たアクセスを別のURLへ恒久的に転送する設定です。
「恒久的」というのがポイントで、「このURLは完全に移転しました」とブラウザや検索エンジンに伝える効果があります。一時的な転送(302リダイレクト)とは異なり、SEO評価も転送先のURLに引き継がれます。
SSL化の場合は「http://〜 → https://〜 へ恒久的に転送」という設定になります。
3. 301リダイレクトしないと起きる問題
httpとhttpsが併存したままにしておくと、以下のような問題が起きることがあります。
- SEV評価が分散する:Googleがhttp版とhttps版を別々のページとして認識し、評価が割れる可能性がある
- セキュリティ警告が出る:httpのURLでアクセスしてきた訪問者に「保護されていない通信」と表示される
- 被リンクの効果が分散する:外部からhttp版URLへのリンクがhttps版に引き継がれない
SSL化のメリットを最大限活かすためにも、301リダイレクトはセットで設定しておくのが基本です。
4. Xserverでhttpからhttpsへ301リダイレクトする方法
エックスサーバーでは、サーバーパネルの「.htaccess編集」から設定できます。
作業前の注意:必ずバックアップをとってください。.htaccessを誤って編集するとサイトが表示されなくなることがあります。編集前に現在の.htaccessの内容をコピーしてメモ帳などに保存しておきましょう。
- エックスサーバーのサーバーパネルにログイン
- 「.htaccess編集」をクリック
- 対象ドメインを選択
- 現在の.htaccessの内容をコピーしてバックアップ
- 後述のコードを既存のコードより上の行に追記
- 「確認画面へ進む」→「実行する」で保存
画面の名称はサービスのアップデートにより変わる場合があります。最新の操作手順はXserver公式マニュアルをご確認ください。
5. .htaccessに追加するコード例
以下のコードを.htaccessの既存のコードより上の部分に追記します。
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]
⚠️ 「example.com」の部分はご自身のドメインに置き換えてください。
また、既存の.htaccessを丸ごと消して上書きしないよう注意してください。WordPressが動作するために必要なコードがすでに書かれているため、消してしまうとサイトが表示されなくなります。あくまで「追記」です。
追記場所の目安は、WordPressのデフォルト記述(# BEGIN WordPress)より上の行です。
6. 301リダイレクトできているか確認する方法
設定後は、実際にhttpのURLにアクセスしてhttpsへ転送されるか確認しましょう。
- ブラウザのシークレットモード(キャッシュなし)を開く
- 「http://(自分のドメイン)/」と入力してアクセス
- アドレスバーが自動的に「https://〜」になっていればOK
- トップページだけでなく、記事ページのURLでも同様に確認する(例:
http://example.com/hogehoge/)
ブラウザのアドレスバーに鍵マーク(🔒)が表示され、URLがhttpsになっていれば成功です。
7. うまくリダイレクトされないときの確認ポイント
設定してもリダイレクトされない、またはエラーが出る場合は以下を確認してみてください。
- ドメイン名が間違っていないか:コード内の「example.com」を正確に自分のドメインに書き換えているか
- 既存のコードを消してしまっていないか:バックアップと見比べて確認する
- WordPressのURL設定がまだhttpになっていないか:「設定>一般」でWordPressアドレスとサイトアドレスがhttpsになっているか確認する(→ SSL化の手順はこちら)
- Xserver側のSSL設定が完了していないか:サーバーパネルのSSL設定で「SSL設定済み」になっているか確認する
- ブラウザのキャッシュが残っていないか:シークレットモードや別のブラウザで確認する
上記を確認しても解決しない場合は、一度.htaccessをバックアップした内容に戻してから、コードの追記箇所・内容を見直してみてください。
まとめ
SSL化後の301リダイレクト設定をまとめます。
- SSL化しただけではhttpとhttpsが併存することがある
- 301リダイレクトを設定することで、httpへのアクセスをhttpsへ恒久的に転送できる
- Xserverではサーバーパネルの「.htaccess編集」から設定できる
- 編集前に必ずバックアップをとること、既存コードは消さないこと
- 設定後はシークレットモードでhttpのURLにアクセスして転送を確認する
SSL化の全体的な手順については、こちらの記事もあわせてご覧ください。
→ エックスサーバーでWordPressをSSL化する方法|httpからhttpsへ変更する手順と注意点


コメント