[WordPress] ドメイン引っ越し後に旧サイトをリダイレクト

こことは別のサイトだけど、WordPress でドメインを引っ越しした。

そこで旧サイトの個別ページ(トップページ、投稿ページ、ページ)等にアクセスした場合、新サイトの対応ページにアクセスできるようにしたい。

最初はいくつかのサイトを参考に、.htaccess を編集することで実現しようとしたが、なぜかうまくいかなかった。

WordPressリダイレクト-ドメイン変更の移転後に全ての記事をリダイレクトする | ワードプレスドクター
https://wp-doctor.jp/blog/2016/02/05/wordpressリダイレクト-ドメイン変更の移転後に全ての記/

『簡単すぎて泣ける』特定ページのみを301リダイレクトする方法
https://manablog.org/301-redirect/

.htaccess – WordPressの管理画面へのアクセスはリダイレクトさせないようにしたい(32946)|teratail
https://teratail.com/questions/32946

.htaccessを使って移転先URLに自動的にリダイレクトさせる方法 | https://pnpk.net
https://pnpk.net/cms/?p=846

【WordPress】301リダイレクトを.htaccessで行う方法と注意点
https://www.webernote.net/wordpress/301-redirect.html

***

ということで、プラグインの「Redirection」を利用することにした。

Redirection | WordPress.org
https://ja.wordpress.org/plugins/redirection/

このプラグインをインストール後「WordPress 管理画面>Tools>Redirection」にアクセスする。

そして旧サイト https://AAA.com から新サイト https://BBB.com へ変更する場合、以下のように設定する。

・Source URL: /((?!.*wp-admin|wp-login).*$)
・Target URL: https://BBB.com/$1
・Group:Redirections
・Regex にチェックを入れる。

(最初 Source URL の所を /(.*) としたら管理画面までリダイレクトされてしまい、ログインできなくなって大変だった。上記のように管理画面はリダイレクトされないように記述するようにして解決。)

これでトップページだろうと個別投稿ページだろうと旧サイトの URL にアクセスすると、新サイトへリダイレクトされるようになった。

参考:
Redirect Regular Expressions | Redirection
https://redirection.me/support/redirect-regular-expressions/

URL変更やドメイン移転でリダイレクトさせたい時はWordPressプラグイン「Redirection」がオススメ! | 資金繰りが苦しくても諦めない! – 中小企業の資金繰り改善・再生するための秘訣
https://blog.davinci-partners.com/it/tool/redirection/

正規表現:文字列を「含まない」否定の表現まとめ | WWWクリエイターズ
http://www-creators.com/archives/1827

***

しかし Redirection プラグインもログイン時にリダイレクトしてしまう問題があるようだ。

謎のリダイレクトでwordpressにログインできなくなった時の対処法 | 有限会社ハートブレーン
https://heartbrain.net/blog160205

参考:
【WP】リダイレクトされて管理画面にログインできない時の対処法
https://mrgishi.com/redirect-login-error/

そこで「Simple 301 Redirects」というプラグインを試した。

Simple 301 Redirects | WordPress.org
https://wordpress.org/plugins/simple-301-redirects/

インストール後、「管理画面>Settings>301 Redirects」をクリックし、以下の2つを登録し、保存する(旧サイト https://AAA.com から新サイト https://BBB.com へ変更する場合)。

Request:/(.*)
Destination:https://BBB.com/$1

Request:/
Destination:https://BBB.com/

すると、旧サイトの個別ページをリダイレクトできるようになった。ログインページは最初からリダイレクトから排除されているようだ。