【WordPress】301リダイレクトを.htaccessで行う設定方法について

【WordPress】301リダイレクトを.htaccessで行う設定方法について
トミー
どもー、北九州ではまだじめじめとした梅雨が続いております。
梅雨明けが待ち遠しいですね。

さて今回は、ワードプレスでリダイレクトする必要があり、その方法を紹介させていただきます。

というのも、運営していた自分のブログですがドメイン変換により新しいドメインに飛ばす必要がありました。
数百ある場合は、プラグインを理由するのもいいですが、10ちょいの記事だったので今回は「.htaccess」でやってみよかと思います。

そちらの方が勉強になっていいかと思いましたので。
では早速見ていきましょう。

リダイレクトとは?
リダイレクトとは、旧ページにアクセスした際に自動的に新ページを表示させる機能です。
リダイレクトには、2つの修理があります。
301リダイレクト
永続的にリダイレクトさせる機能。
検索エンジンは転送先をインデックスし、キャッシュもされます。
また転送元の評価を全て転送先に引き継ぎます。

302リダイレクト
サイト工事中等の一時的にリダイレクトさせる機能。
検索エンジンは転送元をインデックスし、転送先のページはキャッシュされません。
また転送元の評価は転送先には引き継ぎません。

今回はドメイン変更(サイトを引越)したので、『301リダイレクト』を行います。
Googleにインデックスされている旧ページをクリックしても、新ドメインでページを表示させることができます。

では早速設定法について説明させていただきます。

 

WordPressの.htaccessはどこにある?

【WordPress】301リダイレクトを.htaccessで行う設定方法について02

WordPressをインストールしたホームディレクトリにあります。
FTPツール(MacならTransmit)などでアクセスし、.htaccessファイルをローカルにダウンロードしてください。

ワードプレスの.htaccessの基本形

# 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

.htaccessを開くと上記ような内容が記述されています。
ですが、プラグインなど色々な設定をされているともっと下記のような色々なものが記載されている場合があります。

実際ダウンロードしたワードプレスの.htaccessの内容

#SITEGUARD_PLUGIN_SETTINGS_START
#==== SITEGUARD_RENAME_LOGIN_SETTINGS_START
<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteBase /
    RewriteRule ^wp-◯◯◯◯◯.php 404-siteguard [L]
    RewriteRule ^wp-◯◯◯◯◯.php 404-siteguard [L]
</IfModule>
#==== SITEGUARD_RENAME_LOGIN_SETTINGS_END
#SITEGUARD_PLUGIN_SETTINGS_END



# 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
トミー
14行目の「# BEGIN WordPress」の上にも色々な記載がありますね。
現状記載されている内容には手を触れないにお願いします!!
.htaccessを編集する前に!
編集前には必ずバックアップをとっておきましょう!
何かあったときにバックアップファイルを使えば元に戻せます。

301リダイレクト設定を記述

それでは、.htaccessを記述していきます。
記述箇所は簡単です。現状の.htaccessの一番上に追加していきます。

文末に追加したり、# BEGIN WordPressの上に追加したところ、うまく機能せず1時間ぐらいハマりました(泣)

#リダイレクトを追加
RewriteEngine on
RewriteRule ^$ https://www.kakeru-d.jp/ [R=301,L]
RewriteRule ^webdesign/post-190/$ https://www.kakeru-d.jp/blog/illustrator_テキストの形状を維持/ [R=301,L]


#SITEGUARD_PLUGIN_SETTINGS_START
#==== SITEGUARD_RENAME_LOGIN_SETTINGS_START
<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteBase /
    RewriteRule ^wp-◯◯◯◯◯.php 404-siteguard [L]
    RewriteRule ^wp-◯◯◯◯◯.php 404-siteguard [L]
</IfModule>
#==== SITEGUARD_RENAME_LOGIN_SETTINGS_END
#SITEGUARD_PLUGIN_SETTINGS_END



# 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

今回は僕のブログの実例で紹介させていただきます。
https://blog.kakeru-d.jp/〇〇〇/〇〇〇/ から
https://www.kakeru-d.jp/〇〇〇/〇〇〇/ に301転送する記述方法です。

リダイレクト設定は、2行目のRewriteEngine onと記述しその後に転送URLを書いていきます。

3行目の説明

3行目:
RewriteRule ^$ https://www.kakeru-d.jp/ [R=301,L]

上記は、https://blog.kakeru-d.jp/のトップページにアクセスがあった場合、https://www.kakeru-d.jp/のトップページに301転送させる記述です。

^^ の後に転送元もURLを記述。今回はトップページなので、何も入れてません。
$ :$半角スペースの後に転送後のURLを記述。
今回は新規ドメインのトップ「$ https://www.kakeru-d.jp/ [R=301,L]」と記述。

4行目の説明

3行目:
RewriteRule ^webdesign/post190/$ https://www.kakeru-d.jp/blog/illustrator_テキストの形状を維持/ [R=301,L]

上記は、https://blog.kakeru-d.jp/のトップページにアクセスがあった場合、https://www.kakeru-d.jp/blog/illustrator_テキストの形状を維持/のページに301転送させる記述です。

^^ の後に転送元もURLを記述。今回は「webdesign/post-190
$ :$半角スペースの後に転送後のURLを記述。
今回は新規ドメインのトップ「$ https://www.kakeru-d.jp/blog/illustrator_テキストの形状を維持/ [R=301,L]
」と記述。

 

補足情報
ちなみに「#」で書いた行はコメントと言って、コード上では何も意味をもたない文となります。
ですので、メモ代わり等に「#リダイレクトを追加」と記載して分かりやすいように管理するのがポイントです。
あとで見てもどこを編集したのかが分かりやすくなります。

まとめ

  • 301転送を行う場合は、.htaccessの一番上に転送コードを記述。
  • 自分が書いたコードを分かるように#をつけてコメントを記述する。「#転送設定について」など。

.htaccessを使って転送をうまくやりましょう!

301転送はページ評価を受け継ぐ
SEOにとても重要なことですが、自分が書いた記事はグーグルが評価をして検索順位に影響がでます。
301転送をすることで、URLが変わってもそのページ評価を受け継ぐことができます。

よくメタタグで0秒転送とかでページを飛ばしたりするのを見かけますが、その場合評価を受け継がないため、おすすめしません。必ず.htaccessを使って301転送を行ってくださいね。

【WordPress】301リダイレクトを.htaccessで行う設定方法について

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA