【.htaccess】Wordpressのパーマリンク(URL)変更後のリダイレクト設定方法。プラグインなし!

2021-10-04

Wordpress-htaccessリダイレクト設定_001

Wordpressでパーマリンク(記事URL)を変更した後に行うリダイレクト処理をサーバー上にある.htaccessを使って設定する方法です。

「Redirection」というリダイレクト用のプラグインが有名ですが、プラグインが1つ増えてしまうので.htaccessを使う方法がおすすめです。

具体的な手順を書きましたので、初心者の方も是非チャレンジしてみて下さい。

Apache、LiteSpeed等ほとんどのサーバーで使っていただける方法です。
サーバー上の.htaccessを使う方法なのでWordpress以外のサイトでも使えます。

.htaccessを使ったリダイレクト設定

この記事の内容は主にWordpressのパーマリンク変更後に使える方法です。
古い記事ページのURLから新しい記事のURLへリダイレクトするといった内容です。

内容を簡略化するため、リダイレクトの詳細や別ドメインにリダイレクトする方法は書いていません。予めご了承ください。

では早速設定していきましょう!
手順は以下です。

  1. パーマリンクの変更を済ます
  2. 自サーバーにログイン
  3. .htaccessにリダイレクト処理を追加
  4. リダイレクト処理の確認

これだけです!書き方さえ分かれば簡単・w・

ポイント

リダイレクト処理ですがプラグインを使う方法も.htaccessを使う方法も1記事ずつ旧URL→新URLと設定していくことになります。
予め古いURLと新しいURLの対応表のようなものがあれば作業がスムーズです。

パーマリンクの変更を済ませる

まずは自サイトのパーマリンク(記事URL)の変更を済ませておきます。
パーマリンクは出来るだけ早く全ページ変更しておくことをオススメします。

Wordpressの場合はパーマリンク設定を変更した瞬間に新しい記事URLが出来上がってしまうので、そのまま放置していると既存の記事が別の記事として検索エンジンにインデックスされてしまい良くないです。

全記事ページのパーマリンクが決定してからリダイレクト設定に臨みましょう。
順番にリダイレクト処理にページを追加していっても良いですが、手間です。
記事数が多い場合は言うまでもなく大変ですが…

スポンサーリンク

public_html内の.htaccessを編集する

新しいパーマリンクURLが決まったら順番に1記事ずつリダイレクト設定します。

.htaccessは色々なフォルダ内にあるのでどれを編集したらよいのか迷いそうですが、public_html内にある.htaccessを編集します。
(wp-contentフォルダと同じ階層に作成されているはずです。)

.htaccessは設置個所以下のファイルに影響するので、public_html内の.htaccessにリダイレクト処理を追記することで全ページで動作させることが出来ます。
編集前に元の.htaccessのバックアップは取っておきましょう。

Wordpress-htaccessリダイレクト設定_001

public_html内の.htaccessを編集する

もう一つ注意点として.htaccessは隠しファイルになっていることが多いです。
PCで編集する場合はフォルダの表示オプションなどから、FTPやファイルマネージャーでも隠しファイルを表示するように設定変更しないと"見えない"ことがあります。

ファイル名の前に「 . 」が付いていることにも注意しましょう。
特にPCにダウンロードしてメモ帳などで編集する場合は注意です。

.htaccessにリダイレクト処理を追加する

では一番大切なポイントです。
.htaccessを開いてリダイレクト処理を設定していきます。

.htaccessを開くと下記のようなWordpressに関する記述があります。

 .htaccess
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

リダイレクト設定はこの# BEGIN WordPressの前に記述します。
# BEGIN WordPressの後に記述するとうまくいきません。

分からない場合は.htaccessの一番上でも大丈夫なはずです。
当サイトでは一番上に記述しましたが、問題なくリダイレクト出来ています。

旧URLから新URLにリダイレクトするコード

では実際に書き込むリダイレクトの記述です。

(例)
変更前の旧URL:https://sologaku.com/old-page
変更後の新URL:https://sologaku.com/new-page

パーマリンクをold-pageからnew-pageに変更したとしましょう。
この場合のリダイレクト処理の書き方は以下です。

 .htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^old-page/$ /new-page/ [R=301,L]
</IfModule>

https://sologaku.com/old-pageにアクセスされると自動的にhttps://sologaku.com/new-pageにリダイレクトされます。
このリダイレクトの記述をページごとに追記していきましょう。

サンプルとして当サイトは以下のような感じの記述になっています。

 .htaccess
#2021.8.17 redirect start
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^13298/$ /webbrowser/chrome-err-blocked-by-client/ [R=301,L]
RewriteRule ^13274/$ /webbrowser/chrome-err-file-not-found/ [R=301,L]
RewriteRule ^13253/$ /soft-service/xampp-execute-javascript/ [R=301,L]
RewriteRule ^13246/$ /wordpress/affinger5-change-title-tag/ [R=301,L]
・・・省略・・・
</IfModule>
#2021.8.17 redirect end
・・・省略・・・
# BEGIN WordPress
・・・省略・・・
# END WordPress

# BEGIN WordPressよりも前に書きましょう。分からなければ先頭でもOK!
.htaccessでは#を付けるとコメントアウトに出来ますのでリダイレクト設定した日付を入れておくと後々ややこしくならずに済みます。

簡単なコード解説

#2021.8.17 redirect start

コメントメモです。#を付けたところはプログラムに影響しません。

<IfModule mod_rewrite.c>~</IfModule>

mod_rewriteというURLを操作する機能が使える場合のみ実行という記述。
(mod_rewriteが使える場合この記述はなくても動きます)

RewriteEngine On

上記のmod_rewriteの機能を有効化する記述。

RewriteBase /

これでドキュメントルートのパスになります。
ここではサイトドメインのhttps://sologaku.com/が代入される感じです。

RewriteRule ^old-page/$ /new-page/ [R=301,L]

https://sologaku.com/old-pageにアクセスされた場合、
自動的にhttps://sologaku.com/new-oldにリダイレクトする記述。
R=301で301という永久的なリダイレクトを指定します。

301はパーマリンク(記事URL)変更後のリダイレクトに使われるコードです。
ページ評価も旧ページから引き継がれるので301を指定しましょう。

一応Apacheの.htaccessに対応する記述方法ですが、LiteSpeed Serverやnginxを使っているサーバーでも完全互換があるようにしてあるレンタルサーバー会社が多いのでほとんどのサーバーでこの記述でリダイレクトできるはずです。

リダイレクト処理の確認

.htaccessに上記のリダイレクトルールを追記して保存したら、旧URLにアクセスしてみて新URLにリダイレクトされるか確認しておきましょう。

注意ポイント

.htaccessの反映に少し時間がかかる場合があります。
少し時間をおいてから再度旧URLにアクセスしてみて下さい。

無事にリダイレクトされればリダイレクト処理は終了です。
念のため設定した全ページでリダイレクト処理の確認を行っておくのが良いですが、もしリダイレクトに失敗しているとサーチコンソールなどで後日エラーが出ますので分かります。

更に詳しいリダイレクトの確認方法は長くなるので別の記事にしました。



まとめ

.htaccessを使ったリダイレクト方法でした。
他にもJavaScriptやPHPを使う方法がありますが、検索エンジンの仕様上.htaccessによるリダイレクト設定が良いです。
プラグインを使った方法も内容は.htaccessによるリダイレクトです。

リダイレクトの為だけにプラグインを1つ増やすのは高速化&セキュリティの観点からメリットがないので.htaccessで設定しておくのが良いです・w・

関連記事

-WordPress
-

site-logo
ありがとうございました!
良かったらシェアしてネ・w・
当サイトはピンバックを受け付けます。
  • この記事を書いた人
ザキ

ザキ

X:@sologaku

プログラミングに興味があり情報系の大学を卒業。

新卒で社会人になるも数年で退職し今はフリーランスとして生きています。

少しでも誰かの役に立てれば...と思い、当サイトでIT関係のハウツーを発信しています。


ソロ学運営者:ザキの自己紹介

© 2020 sologaku