WordPressのカスタム投稿タイプの階層のURLを変えることがありました。 その際、階層の投稿を全て新しいURLにリダイレクトさせたかったのでメモ。
htaccessに記述
例えば、「old」という階層のものを全て「new」という階層にリダイレクトさせたい。 その場合、以下の記述をhtaccessに追記します。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^old(.*)$ /new$1 [R=301,L]
</IfModule>
例えば、https://example.com/old/2022 が https://example.com/new/2022 にリダイレクトされます。
適宜oldとnewの部分を変えて使用します。
WordPressの場合の注意点
WordPressを導入している場合のhtaccessは 「# BEGIN WordPress」から「# END WordPress」の間は上書きされてしまいます。なので、記述しないように注意です。
その場合は以下のように、BEGINとENDの外に記述します。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^old(.*)$ /new$1 [R=301,L]
</IfModule>
# BEGIN WordPress
〜
# END WordPress