【WordPress】カテゴリースラッグを変更した時のリダイレクト設定【.htaccess】

WordPress

WordPressのカテゴリースラッグを変更した時の、リダイレクト設定を解説します!
プラグインを使わないで、「.htaccess」というファイルを変更する方法です。

カテゴリーのスラッグを変更すると、変更前のURLからはアクセスできなくなります。
だからといって、変更前のURLで投稿した記事やツイートを、すべて探して置き換えるのは相当な手間ですよね。

そのためにリダイレクトの設定が必要です。
リダイレクトしてしまえば、わざわざ探し出して置き換える必要がなくなります!

この記事では、以下の例を元に解説します。

変更前のカテゴリースラッグ:excel
↓↓↓
変更後のカテゴリースラッグ:excel-vba

目次

スポンサードリンク

変更する前の準備・作業手順の確認

WordPressでファイルの内容を変更するときは、必ずバックアップをとりましょう!
万が一、修正を間違えてしまってページが表示されなくなったとき、変更前のファイルにすぐに戻せるようにするためです。

バックアップは、BackWPupというプラグインが定番です。

作業手順の確認

やり方を説明する前に、先に手順を確認しておきます。

  1. 「.htaccess」のダウンロード&書き換え
  2. WordPress管理画面にて、カテゴリのスラッグを変更
  3. 「.htaccess」のアップロード&確認

この手順は、
できるだけサイトへのアクセスに影響がないよう配慮した方法です。
アクセスの多いサイトであれば、これに加えて深夜の時間帯に実行した方がいいと思います。

(上記手順の2と3の間で、該当カテゴリーのページにアクセスできなくなるため)

作業内容

「.htaccess」のダウンロード・書き換え

まずは、現状の「.htaccess」ファイルを、ファイル転送ツールでダウンロードしてきて下さい。

ファイル転送ツールの定番は、WindowsならWinSCP、MacならCyberduck、あたりだと思います。
ここはお好きなソフトを使っていただてい大丈夫です。

ファイルのある場所は、WordPressのルートディレクトリ(/)です。
wp-adminやwp-contentがあるディレクトリですね。

ファイルが見当たらない場合

もし「.htaccess」が転送ツール上で見えてこない場合、隠しファイルを表示するよう設定を変更して下さい。

■WinSCPの場合
[表示] → [環境設定]

左ツリーから[パネル] → 一般の[隠しファイルを表示する]にチェック

■Cyberduckの場合
[Cyberduck] → [環境設定]

一般['.'で始まるファイルを表示]にチェックを入れる

[Cyberduck] → [表示] → [不可視ファイルを表示]にチェックを入れる

以上の設定をすることで、隠しファイルが見えてくるようになります。

ダウンロードが完了したら、中身を書き換えていきます。
「# END WordPress」の下に、3行追加してください。

(省略)
# END WordPress

RewriteEngine on
RedirectMatch 301 ^/excel/(.*) https://test.com/excel-vba/$1
RedirectMatch 301 ^/category/excel$ https://test.com/category/excel-vba

※上記は、カテゴリーのスラッグを[excel]→[excel-vba]に変更した例です
※「test.com」は、ご自身のドメイン名に置き換えてください

簡単に、各行を解説します。

1行目

RewriteEngine on

URLの書き換えを有効にしますよーという宣言です。

2行目

RedirectMatch 301 ^/excel/(.*) https://test.com/excel-vba/$1

RedirectMatch 301は、
正規表現を使って301リダイレクトしますよーという意味です。

「^/excel/(.*)」 は、
URLが「https://test.com/excel/」から始まるページのことで、
それを「https://test.com/excel-vba/$1」にリダイレクトしますよーという意味です。

この「$1」は、
例えば「https://test.com/excel/page1」というページにアクセスであれば、「page1」という文字列が入ってくると思って下さい。
(.*)で受けたページのURLを、そのまま次のブロックに渡している感じですね。

こうすることで、
「https://test.com/excel/page1」のアクセスでも
「https://test.com/excel/page2」のアクセスでも
これ1行書くだけで
「https://test.com/excel-vba/page1」
「https://test.com/excel-vba/page2」
にそれぞれリダイレクトできます。

3行目

RedirectMatch 301 ^/category/excel$ https://test.com/category/excel-vba

これはカテゴリーページをリダイレクトしています。

基本は2行目と同様ですが、
カテゴリーページは1つしかないので、2行目とは違って可変部分(.*)がなくシンプルですね。

WordPress管理画面で、カテゴリーのスラッグを変更

※ここからの2.と3.は一気に進めるようにして下さい。
2と3の間は、該当カテゴリーページにアクセスできなくなるためです。

WordPress管理画面の
[投稿] → [カテゴリー] → (編集したいカテゴリにマウスを持ってきて)[編集]

で、カテゴリースラッグを変更します。

「.htaccess」のアップロード&確認

変更した「.htaccess」を、ファイル転送ツールで本番サーバにアップロードしてください。

アップロードが完了したら、リダイレクトがちゃんと出来ているか確認します。

確認の方法

確認の方法は色々あります。

■WEBのチェックツールを使う場合
リダイレクト検証ツールリダイレクトチェックにアクセスして、変更前のURLを入力するとチェックすることができます。

■変更前のURLを貼った記事やツイートからアクセスする
そこからアクセスしてみて、変更後の新しいURLにリダイレクトされるか確認します。

■他
自分でブラウザのアドレスバーに変更前のURLを打って、変更後のページにリダイレクトされるか確認します。

以上で完了です!
お疲れ様でした。

おわりに

長くなりましたが、ちゃんとリダイレクトできれば幸いです。
もし上手くリダイレクトしなかったり、ページが開かなくなったら、バックアップしたファイルに戻しましょう。

最初から変更のないようカテゴリーやパーマリンクの構造を設計できれば一番なんですが、難しいですよね…笑

スポンサードリンク

ITリテラシー・プログラミングのまとめ記事