【WordPress】301リダイレクトを.htaccessで行う方法
WordPress2017年1月20日
本記事ではWordPressで構築したサイトにて、.htaccessで301リダイレクトをする方法をご紹介いたします。
301リダイレクトとは?
ドメイン取得などによてサイトを引っ越しする、すなわちサイトURLを変更する場合、何も対処せずにサイトの引っ越しを行うと、旧ページにアクセスしたユーザーが新しいページを閲覧できなかったり、検索エンジンからもサイトがどこに引っ越しされたのかわからず結果的に検索順位を下げることになってしまい、サイトへのアクセスが激減することになってしまいます。
これを解決するのが301リダイレクトです。簡単に言えば、旧URLにアクセスしたユーザーを新しいURLへ自動転送します。.htaccessで「301リダイレクトである」ということをGoogleなどの検索エンジン側に明示することにより、検索エンジンからの評価を引き継ぐことが可能になります。
同じようなもので「302リダイレクト」がありますが、これはあくまでも一時的なリダイレクトであり、いずれは「元のURLに戻す」と明示することになります。
.htaccessで301リダイレクトを行うまでの手順
FTPで.htaccessをダウンロード
FTPで該当のサイトへ接続し、WordPressがインストールされているディレクトリの最上部の階層に.htaccessがありますので、これをローカルにダウンロードします。
.htaccessを編集する
テキストエディタで.htaccessを開き、301リダイレクトの記述を追加します。
.htaccessをテキストエディタで開くと以下のようなソースになっているかと思います。
# BEGIN W3TC Browser Cache
<IfModule mod_deflate.c>
~省略~
</IfModule>
<FilesMatch ".(bmp|class|doc|docx|eot|exe|ico|json|mdb|mpp|otf|_otf|odb|odc|odf|odg|odp|ods|odt|ogg|pdf|pot|pps|ppt|pptx|svg|svgz|swf|tif|tiff|ttf|ttc|_ttf|wav|wri|woff|woff2|xla|xls|xlsx|xlt|xlw|BMP|CLASS|DOC|DOCX|EOT|EXE|ICO|JSON|MDB|MPP|OTF|_OTF|ODB|ODC|ODF|ODG|ODP|ODS|ODT|OGG|PDF|POT|PPS|PPT|PPTX|SVG|SVGZ|SWF|TIF|TIFF|TTF|TTC|_TTF|WAV|WRI|WOFF|WOFF2|XLA|XLS|XLSX|XLT|XLW)$">
<IfModule mod_headers.c>
Header unset Last-Modified
</IfModule>
</FilesMatch>
# END W3TC Browser Cache
# BEGIN WordPress
<IfModule mod_rewrite.c>
~省略~
</IfModule>
# END WordPress
これに対し、記述を追加していくことになります。
1対1でリダイレクトを行う場合
最上部に以下のソースを記述します。
- ※http://www.hoge.co.jp/hoge/01.html→http://www.moge.co.jp/hoge/01.htmlにリダイレクトする場合
RewriteCond %{HTTP_HOST} ^(www.hoge.co.jp)(:80)? [NC]
RewriteRule ^hoge/01.html http://www.moge.co.jp/hoge/01.html [R=301,L]
1行目で既存のドメインに関する記述を行い、2行目以降は実際のリダイレクトを記述します。
- ※「RewriteRule リダイレクト元URL リダイレクト先URL」の表記ルールで記述
- ※リダイレクト元URLは「^」のあとに続けてドメイン直下からのURLを記述
注意!
「IfModule mod_deflate.c~」のセクションの後に記述すると正しく動作しないことがあるため、必ず.htaccessの最上部に記述するようにしてください。
ドメインが変わるだけの場合
ドメインだけが変更となる場合は、以下のように記述することで全ページに対して、1対1で301リダイレクトを行うことができます。
RewriteCond %{HTTP_HOST} ^(www.hoge.co.jp)(:80)? [NC]
RewriteRule ^(.*) http://www.moge.co.jp/$1 [R=301,L]
「www」なしの場合の記述も忘れずに
上記の記述のみの場合、「www」なしのURLで遷移してきたユーザーにはリダイレクトが適用されないため、「www」なしの場合もリダイレクトを行う場合は以下のように記述します。
RewriteCond %{HTTP_HOST} ^(www.hoge.co.jp)(:80)? [NC]
RewriteRule ^(.*) http://www.moge.co.jp/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^(hoge.co.jp)(:80)? [NC]
RewriteRule ^(.*) http://moge.co.jp/$1 [R=301,L]
編集した.htaccessをアップロード
編集した.htaccessをFTPで上書きアップロードします。
既存のサイトが正しく表示されているか確認する
.htaccessの記述に誤りがあると、エラーを起こしサイト自体表示されなくなることがあります。まずは既存のサイトが正しく表示されているかどうか迅速に確認するようにしましょう。
リダイレクトされているかを確認する
サイトが表示されていることが確認できたら、正しくリダイレクトされているか確認しましょう。既存URLにアクセスした際、自動で新しいサイトの該当ページにリダイレクトされていればOKです。
まとめ
サイトを引っ越しする際、これまで培った検索エンジンからの評価や既存ユーザーからの適切なアクセスの為に、301リダイレクトを行うことはとても大切なことです。WordPressで301リダイレクトを行う際は、どうぞ本記事をご参考にしていただけますと幸いです。