.htaccessで301リダイレクト(サブディレクトリ→サブドメインにURL変更)
先月このサイトを、.htaccessの301リダイレクトを使って、サブディレクトリからサブドメインのURLに変更しました。
(旧)http://www.df-cue.com/wp/
↓
(新)http://wp.df-cue.com/
リダイレクトループにつまずきましたが、なんとかできましたので、そのときのメモです。
方法
WordPressの管理画面でURLを変更
.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]
※ちなみに、サーバーはロリポップです。
(2017年6月17日追記)
コード3行目の「wp.example.com」の後にスラッシュが2個続いていました箇所を修正いたしました。
また、先日同じことをXサーバーで行ったのですが、スラッシュが2個でも、1個でも正常に動作することを確認しました。。。😅
リダイレクトって難しい…
[…] .htaccessで301リダイレクト(サブディレクトリ→サブドメインにURL変更) | WordPress Note先月このサイトを、.htaccessの301リダイレクトを使って、サブディレクトリからサブドメインのURLに変 […]