NotionのページをCloudflareでsub domainに転送する

2019-11-16·
Aki Ariga
Aki Ariga
· 2 min read

Notionはリッチなメモツール(?)としてじわじわと人気が出ている。モバイルアプリでもPCでも書けるのでメモ書きや調べ物をするのにも重宝しているし、最近ではwebクリッパーがあるので便利にセルフブックマーク用途に使っている。

mediumのpay wall圧力のおかげでblogの移行先を色々と探していたのだけれど、まずは雑なメモを置ける場所を公開してみようと思う。

2021/10/29追記 この方法は完全に使えなくなったので、諦めて memo.chezo.unochezou.notion.site にリダイレクトすることにした。

カスタムドメインの設定方法

残念なことに、Notionまだカスタムドメインを提供していないのだけれど、それをCloudflareのworkerを使って実現するgistと記事を見つけたので試してみた。

大まかなやり方は

「Cloudflareのworkersを使うとJavaScriptを使ってredirectを設定できる」

というものである。

オリジナルのgistはmayneyaoさんがこちらに上げている。

notion.so custom domain

mayneyaoさんは英語がネイティブでないため、スクリーンキャストを使って説明をしているが、英語の記事にはこちらの記事があり、こちらのほうがわかりやすかった。

Use a custom domain for a public Notion page

サブドメインの設定方法

どちらの記事でも、サブドメインなしのドメインを設定しているが、これに付け加えてsub domainを指定したいときの設定を書く。

1. javascript中のMY_DOMAINをサブドメインまで指定する

見ていただければわかるとおり。

const MY_DOMAIN = "memo.chezo.uno"

ちなみに、 START_PAGE はパブリックなユーザー名の入っていないページなのでGoogle Chromeのプライベートモードなどで確認してから貼ると良い(自分はこれにドハマリした)

あと、CORSヘッダーはデフォルトが全部受け入れることになっているので、ちょっと制限した。

const corsHeaders = {
  "Access-Control-Allow-Origin": "chezo.uno",
  "Access-Control-Allow-Methods": "GET",
  "Access-Control-Allow-Headers": "Content-Type",
}

2. DNSでCNAMEを指定する

この場合、 memo というCNAMEを chezo.uno にProxiedされるように設定を追加すればよい。

以上で、 memo.chezo.uno がNotionになっていると思う。


Back to home

Aki Ariga
Authors
Principal Software Engineer
Interested in Machine Learning, ML Ops, and Data driven business. If you like my blog post, I’m glad if you can buy me a tea 😉

Related