NotionのページをCloudflareでsub domainに転送する
Notionはリッチなメモツール(?)としてじわじわと人気が出ている。モバイルアプリでもPCでも書けるのでメモ書きや調べ物をするのにも重宝しているし、最近ではwebクリッパーがあるので便利にセルフブックマーク用途に使っている。
mediumのpay wall圧力のおかげでblogの移行先を色々と探していたのだけれど、まずは雑なメモを置ける場所を公開してみようと思う。
2021/10/29追記
この方法は完全に使えなくなったので、諦めて memo.chezo.uno を chezou.notion.site にリダイレクトすることにした。
カスタムドメインの設定方法
残念なことに、Notionまだカスタムドメインを提供していないのだけれど、それをCloudflareのworkerを使って実現するgistと記事を見つけたので試してみた。
大まかなやり方は
「Cloudflareのworkersを使うとJavaScriptを使ってredirectを設定できる」
というものである。
オリジナルのgistはmayneyaoさんがこちらに上げている。
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になっていると思う。