301リダイレクトとは
リダイレクトとは、ページAに訪れたユーザーをページBに転送させることです。
リダイレクトには301、302、303、307があります。
- 301:新しいURLヘ永久的に変更された際に用います。
サイトリニューアルやブログ記事の統合などでURLが完全に変わった際に利用します。 - 302:一時的に別のURLヘ遷移する際に用います。
サイトのエラーが発生した時にエラーページへ遷移させる為に利用します。 - 303:GETメソッドでアクセスする際に用います。
フォームから投稿した後にトップページへリダイレクトさせる場合などに利用します。 - 307:一時的に別のURLヘ遷移する際に用います。
302と似ているが、リダイレクト先にリダイレクト元と同一メソッドを引き継ぎます。
301リダイレクトの利用シーン
301リダイレクトは恒久的に転送する処理で、Googleなどの検索エンジンに対して転送元ページの評価を引き継ぎます。
その為、サイト・リニューアルでページURLが変わったり、SEO対策で複数ページを統合する際にGoogleの評価を下げない為に301リダイレクトを利用します。
301リダイレクトの.htaccessの書き方
301リダイレクトの.htaccessの書き方をご説明します。
基本
301リダイレクトの.htaccessの基本の書き方です。
RewriteEngine on
RewriteRule ^ URL-A URL-B [R=301,L]
URL-Aにアクセスがあった際にユーザーをURL-Bに転送します。
条件付き
条件付きの301リダイレクトの.htaccessの書き方です。
RewriteEngine on
RewriteCond 条件
RewriteRule ^ URL-A URL-B [R=301,L]
条件が満たされた場合にのみ、URL-Aにアクセスがあった際にユーザーをURL-Bに転送します。
パラメーター付きのURLを301リダイレクトさせる際の.htaccessの書き方
パラメーター付きのURLの場合、上記記述方法では正常動作しません。
例えば、EC-CUBEのカテゴリーを再編成した場合、商品一覧ページを転送する必要があります。
EC-CUBEの商品一覧ページは以下のようなパラメーター付きURLです。
https://thankuthanku.com/products/list.php?category_id=1
ただ、?が含まれている場合、?以降を認識ない為以下のように記述する必要があります。
RewriteCond %{QUERY_STRING} category_id=1
よって、カテゴリーID=1の商品ページを、カテゴリーID=2の商品ページへ転送する場合の記述は以下となります。
RewriteEngine on
RewriteCond %{REQUEST_URI} products/list.php
RewriteCond %{QUERY_STRING} category_id=1
RewriteRule ^ https://%{HTTP_HOST}/%{REQUEST_URI}?category_id=2 [R=301,L]
投稿者プロフィール
-
EC-CUBE、WordPressをメインに担当しています。
最近、Movable Typeの案件が増えてきたので、MTを勉強中です。
ネイビー色が好きでnavyという名前をよく使うけど、navy=海軍好きで時々勘違いされて困っています。
確かに軍モノ古着は好きですが。。。
最新の投稿
WEB制作・集客2023.01.16WordPressのセキュリティを強化できる「SiteGuard WP Plugin」
WEB制作・集客2023.01.06WordPressの移行方法。3パターンをご紹介。
EC-CUBE2022.11.16EC-CUBE管理画面の売上状況を出荷状況へ変更する
EC-CUBE2022.11.01EC-CUBE構築に必要な技術スキル