孅いエンジニアブログ

Netlifyで末尾スラッシュの削除とindex.htmlのリダイレクトがうまくいかない話

リダイレクトさせろー!

リダイレクトさせろー!

リダイレクトさせろ協会会長です。

Vercelでのやり方は前に記事書いたけど、自分の実力ではNetlifyでSSGビルドした際の末尾スラッシュをなくすindex.htmlをなくすという2点ができなかった...

VercelでSSGした時に末尾スラッシュとかindex.htmlをリダイレクトする

いやできるけど?みたいなことあれば教えてほしいです。

Pretty URLs

Netlifyには元々機能としてPretty URLsというものがあるらしく、/about.html を /aboutに変えたり、/about/index.html を /about/に変えたりできるそう。

いやまぁ、/about/index.htmlを/aboutにしてほしいんだけれども。

Astroでビルドする時はビルドオプションで/about/index.htmlか/about.htmlの形式か選べるからまぁいいや。ただこのPretty URLs動かねえ。。。

リダイレクト設定

Netlifyのリダイレクトは_redirectsだとか、netlify.tomlとかでできます。Vercelで言うvercel.json的な?設置場所全然違うけど

_redirectsにこう書いたら行けるだろと思ったら無理でした。無限リダイレクト編が始まりました。

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

ドキュメントみたらご丁寧に書いてあった。

要約:スラッシュ入ってようが、入ってなかろうが同じパスとして判断するから無理やで~

なんでや!

index.htmlも同じ理由なのでしょうね。

諦めて一旦は<link rel="canonical" href="" />の設定して、history.replaceStateでパスを書き換えることにしますた。