MENU
  • ブログ用語集(ガイド)
  • ブログ運営基礎知識
  • SEOノウハウ
  • ブログ収益化
  • WordPress
  • Webデザイン
  • PC
  • サービス一覧
  • 無料相談
セオリコ
  • ブログ用語集
  • 記事一覧
    • ブログ基礎知識
      • ブログ基礎知識
      • ブログの書き方
      • サーバー関連
    • ブログ収益化
      • Google AdSense
    • SEO
    • Webデザイン
      • CSSデザイン
    • WordPress
      • WordPress エラー修正方法まとめ
      • WordPressテーマ
      • WordPressプラグイン
      • ブログカスタマイズ
    • PC関連
      • OS・ソフトウェア
      • ハードウェア
  • サービス一覧
    • ブログ個別サポート(コンサルティング)
    • サイト診断(Google AdSense 審査対策)
    • Search Console データ分析
    • WordPress エラー修復
    • Link Map Insights
  • 無料相談
セオリコ
  • ブログ用語集
  • 記事一覧
    • ブログ基礎知識
      • ブログ基礎知識
      • ブログの書き方
      • サーバー関連
    • ブログ収益化
      • Google AdSense
    • SEO
    • Webデザイン
      • CSSデザイン
    • WordPress
      • WordPress エラー修正方法まとめ
      • WordPressテーマ
      • WordPressプラグイン
      • ブログカスタマイズ
    • PC関連
      • OS・ソフトウェア
      • ハードウェア
  • サービス一覧
    • ブログ個別サポート(コンサルティング)
    • サイト診断(Google AdSense 審査対策)
    • Search Console データ分析
    • WordPress エラー修復
    • Link Map Insights
  • 無料相談

.htaccess による WordPress 301 リダイレクト方法まとめ

2024 9/18
WordPress
2024/09/18

WordPress で運営しているブログ・サイトの「301 リダイレクト」設定方法を、以下のケース別にまとめています。

  • 各ページのパーマリンクを変更したとき
  • 一部のページを別のサイトに移動したとき
  • パーマリンク設定を変更したとき
  • ドメインを変更したとき
  • ルート / サブドメイン / サブディレクトリに変更したとき

移行そのものに関しては以下の記事をご覧ください。

WordPress 記事移行方法まとめ

目次

.htaccess によるリダイレクト

すべてのリダイレクトは .htaccess の編集で対応できます。

各ページのパーマリンクを変更したとき

リダイレクト元
  • https://example.com/before/
リダイレクト先
  • https://example.com/after/

同じサイト(ドメイン)内でパーマリンクを変えるとき、最も簡単なコードは以下のとおりです。

Redirect 301 /before/ /after/

上記のコードでは、パラメーター付きの URL は転送されません(広告や一部 SNS からのアクセスには、パラメーターが付きます)。

パラメーター付きの URL も転送したい場合は、以下のコードになります。

RewriteEngine On
RewriteCond %{REQUEST_URI} ^/before/
RewriteRule ^before/(.*)$ /after/$1 [R=301,L,QSA]

一部のページを別のサイトに移動したとき

リダイレクト元
  • https://example.com/before/
リダイレクト先
  • https://example.jp/before/
  • https://blog.example.com/before/
  • https://example.com/blog/before/

一部のページを別のサイト(サブディレクトリやサブドメインを含む)に移動するとき、最も簡単なコードは以下のとおりです。

# 別ドメインに移動
Redirect 301 /before/ https://example.jp/before/
# サブドメインに移動
Redirect 301 /before/ https://blog.example.com/before/
# サブディレクトリに移動
Redirect 301 /before/ https://example.com/blog/before/

パラメーター付きの URL も転送したい場合は、以下のコードになります。

# 別ドメインに移動
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/before/
RewriteRule ^before/(.*)$ https://example.jp/before/$1 [R=301,L,QSA]
# サブドメインに移動
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/before/
RewriteRule ^before/(.*)$ https://blog.example.com/before/$1 [R=301,L,QSA]
# サブディレクトリに移動
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/before/
RewriteRule ^before/(.*)$ https://example.com/blog/before/$1 [R=301,L,QSA]

パーマリンク設定を変更したとき

WordPress のパーマリンク設定(共通設定)を変更するさい、環境によってコードが異なります。

もともとが「基本」だった場合、リダイレクト設定は必要ありません。WordPress が自動的に変更後のパーマリンク構造にリダイレクトしてくれるためです。

ここでは、その他の構造から「投稿名」に変更するパターンのみご紹介します。

変更前
  • /%year%/%monthnum%/%day%/%postname%/(日付と投稿名)
  • /%year%/%monthnum%/%postname%/(月と投稿名)
  • /archives/%post_id%(数字ベース)
  • /%post_id%/(数字のみ / カスタム構造)
変更後
  • /%postname%/

.htaccess はそれぞれ以下のとおり。

# 日付と投稿名から投稿名
RedirectMatch 301 ^/([0-9]{4})/([0-9]{2})/([0-9]{2})/(?!page/)(.+)$ https://example.com/$4
# 月と投稿名から投稿名
RedirectMatch 301 ^/([0-9]{4})/([0-9]{2})/(?!page/)(.+)$ https://example.com/$3
# 数字ベースから投稿名
RedirectMatch 301 ^/archives/(\d+)$ https://example.com/?p=$1
# 数字のみから投稿名
RedirectMatch 301 ^/(\d+)$ https://example.com/?p=$1

%post_id% から変更するとき、いったん「基本」にリダイレクトし、そこからさらに「投稿名」にリダイレクトする形になります。

Create Redirects | Yoast SEO   を使うと簡単です。

ドメインを変更したとき

リダイレクト元
  • https://example.com/
リダイレクト先
  • https://example.jp/

サイトのドメインを変更するとき(ドメインを載せ替えるとき)のコードは、以下のとおり。

RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$
RewriteRule ^(.*)$ https://example.jp/$1 [R=301,L]

上記コードが書かれた .htaccess を残しておけば、リダイレクト元の WordPress を削除しても問題ありません。

サーバーの仕様にもよりますが、WordPress のドメイン載せ替えは「別の WordPress に変更」という形になります。

ルート / サブドメイン / サブディレクトリに変更したとき

リダイレクト元
  • https://example.com/
  • https://blog.example.com/
  • https://example.com/blog/
リダイレクト先
  • https://example.com/
  • https://blog.example.com/
  • https://example.com/blog/

同じドメイン内でサイトを丸ごと移動する場合、サブディレクトリのみやや扱いが難しくなります。

# ルートからサブドメインに移動
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$
RewriteRule ^(.*)$ https://blog.example.com/$1 [R=301,L]
# ルートからサブディレクトリに移動
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$
RewriteCond %{REQUEST_URI} !^/blog/
RewriteRule ^(.*)$ https://example.com/blog/$1 [R=301,L]
# サブドメインからルートに移動
RewriteEngine On
RewriteCond %{HTTP_HOST} ^blog\.example\.com$
RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]
# サブドメインからサブディレクトリに移動
RewriteEngine On
RewriteCond %{HTTP_HOST} ^blog\.example\.com$ [NC]
RewriteRule ^(.*)$ https://example.com/blog/$1 [R=301,L]
# サブディレクトリからルートに移動
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$
RewriteRule ^blog/(.*) https://example.com/$1 [R=301,L]
# サブディレクトリからサブドメインに移動
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^blog/(.*)$ https://blog.example.com/$1 [R=301,L]

RewriteRule のリダイレクト先ドメインを変更して、「ルートから別ドメインのサブドメインへリダイレクト」という形にも対応できます。

プラグイン「Redirection」によるリダイレクト

以下のリダイレクトに関しては、.htaccess の編集ではなく、プラグイン「Redirection」を使うほうが簡単です。

  • 各ページのパーマリンクを変更したとき
  • 一部のページを別のサイトに移動したとき

各ページのパーマリンクを変更

リダイレクト元
  • https://example.com/before/
リダイレクト先
  • https://example.com/after/

サイト内でリダイレクトするときは、ドメインを省略してかまいません(ドメインを含んだ URL をそのままコピペしても OK。プラグインが自動的に調整してくれます)。

オプションでチェックが入っている「大文字小文字の区別なし」「スラッシュ無視」は、そのままの状態で大丈夫です。

  • ソース URL:/before/
  • ターゲット URL:/after/
ページのパーマリンクを変更するときの Redirection 設定

一部のページを別のサイトに移動

リダイレクト元
  • https://example.com/before/
リダイレクト先
  • https://example.jp/before/

他のサイトにリダイレクトさせるときは、「ターゲット URL」にドメインを含めた URL をコピペするだけです。

  • ソース URL:/before/
  • ターゲット URL:https://example.jp/before/
ページを別サイトに移動するときの Redirection 設定

サイト全体の転送には向かない

Redirection は正規表現を扱えるので、パーマリンク設定変更やサイト全体の移行も処理できます。

しかし、以下の場合は設定したリダイレクトが無効になってしまいます。

  • リダイレクト元の WordPress を削除した場合
  • 何らかのトラブルでプラグインが停止した場合

「全体的にリダイレクトするなら .htaccess」「少数ページをリダイレクトするなら Redirection」という使い分けがおすすめです。

301 リダイレクトに関する FAQ

WordPress の 301 リダイレクトに関し、よくいただくご質問を以下に掲載しています。

301 リダイレクトって何?

ユーザーや検索エンジンが古い URL にアクセスしたさい、自動的に新しい URL に転送する仕組みです。

ユーザーは新しい URL を探さなくてすみますし、検索エンジンは古い URL から新しい URL へ検索評価を引き継ぎます。

ブログ運営者が覚えておきたい HTTP ステータスコード

「301 リダイレクト」と「302 リダイレクト」の違いは?

  • 301:恒久的なリダイレクト
  • 302:一時的なリダイレクト

ただし、「302」のまま長期間放置しておくと、検索エンジンは「301」と同じように扱います。パーマリンク変更やドメイン載せ替えなら、「301」を使っておけば問題ありません。

Search Console のエラーが消えません

Search Console インデックス登録レポートの「ページにリダイレクトがあります」は、エラーではなく確認の項目です。

「リダイレクト先の URL をインデックス登録しました」という意味なので、意図して設定したリダイレクトであれば、レポートに表示されているのが正しい形です。

Search Console「ページのインデックス登録レポート」への適切な対処方法

301 リダイレクトすれば検索順位は落ちない?

URL の変更は、良くも悪くも検索順位に影響します。

301 リダイレクトで検索評価を 100 % 引き継ぐとは限らず、検索順位が一時的または永続的に低下する可能性があります。

順位が上がる(戻る)可能性もありますが、コアアップデートなどで落ちたサイトのドメインを何度も変更していると、手動ペナルティが課せられるかもしれません。

Google コアアップデートで検索順位が低下したときの対処法

301 リダイレクトはいつまで残しておけばよい?

可能であれば、サイト運営を続けているかぎりずっと残しておくのが理想的です。

古い URL への被リンクが完全にゼロになり、検索エンジンも古い URL をクロールしていないようであれば外してもよいかもしれません。それでも最低 1 年はリダイレクトの維持をおすすめします。

まとめ

.htaccess の編集に失敗すると、500 エラーなどでサイトが表示されなくなるおそれがあります。

WordPress で 500 Internal Server Error になる原因と解決策

ページ単位でリダイレクトするなら、プラグイン「Redirection」がおすすめ。

WordPress 初心者であれば、ドメインの載せ替えやサブドメイン / サブディレクトリ間の移行など、全体的に変更するときのみ .htaccess で設定するとよいですね。

エラーが出て手に負えなくなった、ドメイン変更を代行してほしい、という場合はお気軽にご相談ください。

WordPress

著者

SEO コンサルタント 瀬尾

瀬尾 真

SEO コンサルタント

Web 歴 20 年以上の SEO コンサルタント。ライティング業務ほか、サイト制作・コンテンツ販売・メディア運営代行業務を行っています。当サイト(セオリコ)では、おもにブログ初心者向けのノウハウを配信。

ココナラでは WordPress エラー修正やハッキング修復、Search Console 分析サービスをご提供しています(年間400件以上対応)。

X (Twitter)
ココナラ
マシュマロ
お問い合わせ

関連記事

  • ファイル移行
    WordPress 記事移行方法まとめ(一部の記事 / すべての記事)
  • robots.txt
    WordPress「robots.txt」の設定例と作成方法
  • 404エラー
    WordPress 404 エラーページの作り方・カスタマイズ方法
  • bcrypt
    WordPress 6.8 のログインパスワードをデータベースから変更する方法
  • localhost
    WordPressが公開できないときは「localhost/wordpress」の可能性あり
  • WordPress の記事が消えてしまった原因と防止策・復旧方法解説
  • WordPress セキュリティ
    WordPress のセキュリティを強化する方法 10 選
  • ハッキング
    WordPress がハッキングされた事例と実際に修復した手順
  1. セオリコ
  2. WordPress
  3. .htaccess による WordPress 301 リダイレクト方法まとめ
Category
  • ブログ運営法
  • ブログ収益化
  • SEO
  • Webデザイン
  • WordPress
  • PC
Service
  • ブログ個別サポート
  • Google AdSense 審査対策
  • WordPress エラー修復
  • Search Console 分析
WordPress Plugin
  • Link Map Insights
Information
  • ブログ用語集(ガイド)
  • お問い合わせ
  • サイトマップ
  • セオリコ運営者情報
  • コンテンツポリシー
  • プライバシーポリシー
  • X (@seoryco)

© seoryco.

  • お問い合わせ
  • サービス一覧
  • 検索
  • 目次
  • トップへ
目次