.htaccessで301リダイレクト(サブディレクトリ→サブドメインにURL変更)

先月このサイトを、.htaccessの301リダイレクトを使って、サブディレクトリからサブドメインのURLに変更しました。

(旧)http://www.df-cue.com/wp/
       ↓
(新)http://wp.df-cue.com/

リダイレクトループにつまずきましたが、なんとかできましたので、そのときのメモです。

方法

  1. WordPressの管理画面でURLを変更

  2. .htaccessファイルで301リダイレクト

上記の2つの手順でOKでした。
これで旧URLへアクセスされた時や検索エンジンもスムーズに転送されます。

リダイレクトループの問題が…

が、しかし、.htaccessファイルでつまづいてしまいました。。。
以下のエラーで、サイトが表示されなくなってしまったのです。

このウェブページにはリダイレクトループが含まれています

解決方法

いろんなサイトを拝見すると、リダイレクトループの原因は、サブディレクトリとサブドメインの名称が、同じ「wp」だったことのようでした。

でも、フォルダ名も変えたくないし、データの移行を行わずに何とかできないだろうか…と考え、いろいろと試行錯誤したところ、参考サイト様のおかげでやっと表示されました。
ありがとうございます。これで301リダイレクトも無事完了いたしました!

【例】
(サブディレクトリ)http://www.example.com/wp/
       ↓
(サブドメイン)http://wp.example.com/

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

※ちなみに、サーバーはロリポップです。

参考サイト

ドメインを移行したら、.htaccessでリダイレクトの設定をしよう

(2017年6月17日追記)

コード3行目の「wp.example.com」の後にスラッシュが2個続いていました箇所を修正いたしました。

また、先日同じことをXサーバーで行ったのですが、スラッシュが2個でも、1個でも正常に動作することを確認しました。。。😅
リダイレクトって難しい…

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です