自分はカスタムドメインを適用したA(www.***.***)というサイトを持っていて(github+Hugo+Netlifyで作成)、 別に作ったブログ(***.netlify.app)をその下の www.***.***/blog/ というアドレスでアクセスできるようにしたかった。管理するリポジトリを分けたかった……ことになるのか。

カスタムドメインを紐付けたNetlifyサイトとは別のNetlifyサイトを、そのカスタムドメイン配下のディレクトリにApacheのRewriteRuleのようにリダイレクトする - dskd

やりたかったことはそのまま、こちらの記事で説明されているものです。感謝しかない……。

やったこと

  • サイトAのドキュメントルートに _redirects という名前のファイルを配置し、設定を書く
  • サイトAのドキュメントルートに netlify.toml ファイルを配置し、設定を書く

のどちらかを設定すればいいということなので、

_redirect ファイルを使う場合

Hugoで作成しているAサイトの static フォルダの中に _redirect ファイルを作成して次のように書いてpush。

/blog/*    https://***.netlify.app/:splat    200!

netlify.toml を使う場合

[[redirects]]
  from = "/blog/*"
  to = "https://***.netlify.app/:splat"
  status = 200
  force = true

のように書く。

Bサイトはnetlifyでサイトデプロイしたときの初期アドレスのまま、カスタムドメイン設定していない。 www.***.***/blog/ にアクセスすると、Netlifyで公開した別リポジトリで管理しているBサイトの内容が表示される。

baseURL の調整

AサイトもBサイトもHugoで作成しているので、サイトBの config.toml の baseURL には運用したいurlを書いた。

baseURL = "https://www.***.***/blog/"

サイトBでのリソースの参照先が狂うと思った通りの挙動をしないので、ファイルパスは相対パスで書くのがいいのか。 今回は使用したテーマを変更する必要はなくbaseURLの書き換えだけで済んだ(…はず)。

やったことは以上です。

参考