このレッスンでは、次のことを学びます。
- 「301」リダイレクトを設定するタイミング
- なぜ301リダイレクトを設定するのか
- ページをリダイレクトする方法
- フォルダをリダイレクトする方法
- エスケープ文字を使用する方法
- ドメイン全体をリダイレクトする方法
1. 「301リダイレクト」を設定するタイミング
301リダイレクトは、古いパスから新しいURLへのトラフィックを恒久的にルーティングする必要がある場合に便利です。
リダイレクトには、"一時的な移転"を示す302リダイレクトなどの種類もありますが、301リダイレクトは、新しいURLに"恒久的に誘導する必要がある場合"に使用するとよいでしょう。
2. なぜ「301リダイレクト」を設定するのか
古いURLを新しいURLに置き換えた場合でも、古いURLが検索結果に表示されたり、ブログの記事やフォーラムの投稿で参照されたり、ブックマークされたり、名刺などに印刷されたりすることがあります。古いURLにアクセスした人は、404ページに誘導されます。しかし、301リダイレクトを設定すれば、旧URLを検索したユーザーは、指定された新URLにリダイレクトされます。
Googleは最終的に新しいサイト構造をインデックスし、古いURLは更新されることになります。しかし、特に旧URLからのランキングパワーを維持したい場合は、301リダイレクトがベストプラクティスとなります。
3. ページをリダイレクトする方法
古いページまたはページのフォルダー全体を、ウェブフローサイト内の新しい場所に恒久的にリダイレクトすることができます。
301リダイレクトを設定するには
- サイト設定 > パブリッシング > 301リダイレクトを選択します。
- 「旧パス」フィールドに旧URLを入力します(例:/old-url)。
- 「リダイレクト先パス」フィールドに新しいURLを入力します(/entirely/new-url/structure)。
- リダイレクトパスの追加をクリック
- サイトを公開する
これで、新しいブラウザのタブに古いURLを入力して、リダイレクトをテストすることができます。
4. フォルダーをリダイレクトする方法
フォルダ全体をリダイレクトする場合
- サイト設定 > 公開 > 301リダイレクトにアクセスします。
- 「旧パス」フィールドに旧URL構造のキャプチャグループ(.*)を追加する(例:/oldfolder/(.*)
- リダイレクト先パス」欄に、新しいURL構造のターゲットパス%1を追加します(/entirely/new-url/structure/%1)。
- 複数のキャプチャグループを追加して、より複雑なリダイレクトルールを作成することができます。例えば /blogs/(.*)/(.*) は /articles/%1/%2 にリダイレクトすることができます。
ワイルドカードリダイレクトの例
例えば、次のような URL 構造を持つすべてのページを /blog.php?category=food&post=pie から /blog/food/pie にリダイレクトさせたいとしましょう。
音楽」「旅行」「食べ物」などのカテゴリと、「ビヨンセ」「ハワイ」「パイ」などのポストがあるかもしれません。これが変数です。上のURLでは、"food "と "pie "が変数になります。これらの変数を変更するには、これらの変数を「(.*)」のようなキャプチャ・グループで呼び出す必要があるります。
古いパス /blog.php%?category%=(.*)%&post%=(.*)
ページへのリダイレクト /blog/%1/%2
上記の例では、"%1" は最初のキャプチャグループを、"%2" は 2 番目のキャプチャグループを指します。このワイルドカードリダイレクトを使うと
/blog.php?category=music&post=beyonce は、 /blog/music/beyonce にリダイレクトされます。
/blog.php?category=travel&post=hawaii は /blog/travel/hawaii にリダイレクトされます。
/blog.php?category=food&post=pie は /blog/food/pie にリダイレクトされます。
5. エスケープ文字の使用方法
ワイルドカードやシングルパスでURLを使用する場合、以下の文字を文字の前に「%」記号を使用してエスケープしてください。
%
-
&
*
(
)
=
_
+
?
例えば、/old-folder/(.*) は、動作させるためには /old%-folder/(.*) とする必要があります。
例えば、mysite.com/blog.php?category=foodをmysite.com/blog/foodにリダイレクトさせたいとします。以下のようにリダイレクトを記述する必要があります。
古いパス /blog.php%?category%=food
リダイレクト先パス:blog/food
この場合、リダイレクトを正しく動作させるために、"? "と"="の前に"%"記号が必要です。
6.ドメイン全体をリダイレクトする方法
あるドメインを別のドメインにリダイレクトするには
- 古いドメインと新しいドメインの両方をサイトに接続します。
- 新しい方をデフォルトドメインに在宅ワークます。