S-COBAN

BLOG

WordPressでパーマリンクを変更したときにプラグインを使わずにリダイレクトする方法

WoredPress

WordPressでパーマリンクの設定を変更した場合には、URLの変更が伴うため、SEOを考慮すると古いURLにアクセスがあった場合には、新しいURLにリダイレクトするようにしておきたい。

リダイレクトを行うためのプラグインも存在するが、プラグインによるサイトの負担を増やすことは避けたいので、プラグインを使わずにリダイレクトする簡単な方法を紹介する。

htaccess ファイルを使用する

Googleは「.htaccessファイル」を使ったサーバーサイドで動作するリダイレクトを推奨している。.htaccessファイルというのは、ドットエイチティアクセスと称するWebサーバの設定ファイルのこと。

WordPressがインストールされているディレクトリに、.htaccessファイルがある。

リダイレクトを指定する記述

.htaccessファイルを使ったリダイレクトは、たった1行を記述するだけ。

redirect 301 変更前URL(ドメイン含めない) 変更後URL(ドメイン含める)

例えば、https://sample.com/before.html を https://sample.com/after.html にリダイレクトする場合を下記のようになる。

redirect 301 /before.html https://sample.com/after.html

変更前URLにはドメインの記述を含めない。

ちなみに、リダイレクトには301リダイレクトと302リダイレクトという2種類があって、上記の場合は記述にある通り301リダイレクトの指定になる。302リダイレクトは、URLを一時的に変更するものであって元に戻す予定がある場合に指定することから、変更前のURLも情報として保持される。

リダイレクトを記述する場所

前述したリダイレクトの記述を「# END WordPress」のあとに追記する。

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
redirect 301 /before.html https://sample.com/after.html

日本語を含むURLの指定は注意

URLに日本語が含まれる場合には、URLをエンコードして記述する必要がある。日本語が含まれるURLのリダイレクトについては、別途紹介する予定ということで省略させてもらう。