記事一覧
Topに戻る
  • TOP
  • Netlify
  • Netlifyでリダイレクトの設定をする

Netlifyでリダイレクトの設定をする

公開日:

by @Panda_Program

目次

Netlifyでリダイレクトの設定をする

ブログのURLを正規化するためにNetlifyでリダイレクトを設定する方法を調べました。ブログの正規化は検索エンジンのために行います。検索エンジンは以下のURLを全て異なるものとして認識するからです。

当サイトではhttpsで/なしで統一(=正規化)しています。

しかし、まだ各ブログ記事のURLは/あり・なしで分かれており、また検索エンジンはAMP対応のページを/amp/posts/post-name/index.htmlと認識してしてしまっていたので、Netlifyでリダイレクトの設定をしました。

Netlifyでリダイレクトを設定する方法は、netlify.tomlにリダイレクトの項目を記述することです。以下で手順をご紹介します。

リダイレクト設定をツールで生成する

Netlifyのリダイレクト設定を生成するツールを使います。

Netlifyのリダイレクト設定を生成するツール

2つ設定をしましょう。/posts/post-name/から最後の/を省くようにします。また、AMPのページではindex.htmlを省略するようにします。

/posts/*/  /posts/:splat  301!
/amp/posts/*/index.html  /amp/posts/:splat  301!

fromtostatus codeの順番で記述します。ステータスコードの後の!は、強制的にリダイレクトさせるという意味です。

また、:splatは、from内の*でマッチした文字列をそのまま持ってくるという意味です。

これで右上の「test rules」というボタンをクリックすると、netlify.tomlに記述するリダイレクトの設定を生成できます。

[[redirects]]
from = "/posts/*/"
to = "/posts/:splat"
status = 301
force = true
[[redirects]]
from = "/amp/posts/*/index.html"
to = "/amp/posts/:splat"
status = 301
force = true

なお、リクエストされたURLは、上から順にマッチするルールを探していくのでルールの順序には気をつける必要があります。

# このルールは/blog/my-old-titleで発火する
/blog/my-old-title   /blog/my-new-title

# 上記のルールにマッチしたため、このルールは発火しない
/blog/my-old-title   /blog/an-even-better-title

さらに詳しい情報はNetlifyの公式ドキュメントに記載されています。

Search Consoleで確認する

Search Consoleでhttps://panda-program.com/posts/gatsby-amp/をチェックしてみましょう。

Search Console

/がない/posts/gatsby-ampで正規化されていますね!

まとめ

いかがでしたでしょうか。Netlifyでのリダイレクトは簡単に設定できて便利ですね。

Happy Coding 🎉