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=海軍好きで時々勘違いされて困っています。
確かに軍モノ古着は好きですが。。。
最新の投稿
- ECサイト構築・運営2023.03.14BOOTH宛名印刷用CSVを元に納品書を発行する
- ECサイト構築・運営2023.03.07フューチャーショップでカート一体型LPを制作する
- WEB制作・集客2023.02.08iPhoneで公開前のサイトを公開URLでチェックする方法
- WEB制作・集客2023.02.07hosts設定をすれば、サイトを公開前にチェックできる