アプリのサイトを GitHub Pages から独自ドメイン+Cloudflare Pages に移した——規約・プライバシーポリシーの URL を変えるときの手順
ToVue のサイトを、GitHub Pages(9ura00.github.io/ToVue/)から、独自ドメインの 9ura00.com/tovue/ に移しました。サーバーは Cloudflare Pages です。
アプリのサイトには、ただの紹介ページだけでなく、アプリ内や App Store から参照される利用規約・プライバシーポリシー・サポートのページがあります。URL を変えるときは、リンクを切らさない順番で進める必要があったので、手順をまとめておきます。
なぜ移したのか
- アプリごとにドメインを取るのはやめて、1つにまとめたかった。 今後のアプリも
9ura00.com/<アプリ名>/に、紹介ページと規約をそろえて置けるようにしました。 - お問い合わせのメールアドレスもドメインでそろえたかった。 Cloudflare のメール転送(Email Routing)を使うと、
tovue@9ura00.comのようなアドレスを無料で作って、普段使っている Gmail に転送できます。 - GitHub Pages は、規約上、商用サイトの無料ホスティングには向かないので、将来サイトに広告を置くことも考えて Cloudflare Pages にしました。
全体の流れ
| 順番 | やること | 目的 |
|---|---|---|
| 1 | 独自ドメインを取り、Cloudflare Pages に新しいサイトを公開 | 新しい URL を先に用意する |
| 2 | 旧 URL の全ページを、新しい URL への転送ページに置き換える | 古いアプリや検索結果のリンクを切らさない |
| 3 | 規約・プライバシーポリシーの中身を新しい環境に合わせて直す | 配信元・問い合わせ先の記載を正しくする |
| 4 | アプリを更新して、アプリ内のリンクと問い合わせ先を新しくする | アプリから直接新しい URL を開く |
| 5 | App Store Connect のサポート・マーケティング・プライバシーポリシーの URL を変える | ストアの掲載情報を新しくする |
ポイントは、新しいページを先に公開し、旧ページは消さずに転送にすることです。アプリを更新しない人もいるので、古いアプリの中のリンクはずっと旧 URL を開き続けます。
1. 新しいサイトを公開する
ToVue のサイトは、もともと Jekyll(GitHub Pages が使っている、Markdown から HTML を作る仕組み)で作っていました。Cloudflare Pages に移すにあたって、手元で HTML まで作ってからアップロードする形にしました。
変える必要があったのは、Jekyll の設定の2行だけです。
url: https://9ura00.com
baseurl: /tovue
ページの中の URL(正規 URL、各言語版へのリンク、SNS で共有したときの画像の URL など)は、この設定から作られるので、11言語ぶんがまとめて新しい URL になりました。
2. 旧 URL を転送ページにする
GitHub Pages では、サーバー側の転送(301)は使えません。そこで、旧サイトの全ページを、同じパスの新しい URL へ移る小さな HTML に置き換えました。
<link rel="canonical" href="https://9ura00.com/tovue/ja/privacy/">
<meta http-equiv="refresh" content="0; url=https://9ura00.com/tovue/ja/privacy/">
<script>location.replace("https://9ura00.com/tovue/ja/privacy/" + location.hash);</script>
ここで1つ気をつけたことがあります。ToVue のアプリは、規約のページを JavaScript をオフにして読み込んでいます。JavaScript だけで転送すると、古いアプリの中では転送されずに止まってしまいます。そのため、JavaScript を使わない meta refresh を必ず入れています。
旧サイトのページ一覧は、新しいサイトの出力から自動で作るようにしたので、転送漏れのページはありません(44ページ)。
3. 規約とプライバシーポリシーを直す
サーバーを移すと、プライバシーポリシーの記載も変わります。ToVue のプライバシーポリシーには「このページは GitHub が配信しています」と書いていたので、11言語すべてで次のように直しました。
- 公開ページの配信と、お問い合わせメールの転送:Cloudflare, Inc.
- 旧アドレスの転送用ページの配信:GitHub, Inc.
問い合わせ先のメールアドレスも、新しいアドレスに変えて、最終更新日を更新しています。サイトの移転は見た目が変わらないので忘れがちですが、利用者の情報を処理する事業者が変わるので、きちんと書き換える必要があります。
つまずいたこと:メールアドレスが「[email protected]」になる
Cloudflare には、ページ内のメールアドレスを自動で難読化する機能(スクレイプシールドの「メールアドレスの難読化」)があり、最初はオンになっていました。
普通のブラウザでは、JavaScript で元のアドレスに戻して表示するので問題ありません。ところが、JavaScript をオフにしているアプリ内の規約画面では、問い合わせ先が [email protected] と表示されてしまいます。アプリでページを開く場合は、この機能をオフにしておく必要があります。
4〜5. アプリと App Store Connect
アプリの更新(ToVue 1.1.1)では、次のものを変えました。
- アプリ内で開く規約・プライバシーポリシーの URL
- 問い合わせ先のメールアドレス(あわせて、メニューに「お問い合わせ」ボタンを追加)
- 規約ページの中のリンクを、外部ブラウザで開くかどうかを判定するドメイン
App Store Connect では、11言語ぶんのサポート URL・マーケティング URL・プライバシーポリシー URL を、新しいアプリの版を作るタイミングで変えました。これらは新しい版を出さないと変えられない項目なので、アプリの更新と一緒に行うのが効率的です。
まとめ
- 新しいサイトを先に公開し、旧 URL は消さずに転送ページにする
- アプリの中でページを開くなら、JavaScript を使わない転送を入れる
- サーバーを移したら、プライバシーポリシーの「配信元」の記載も直す
- Cloudflare のメールアドレスの難読化は、アプリ内で開くページでは問題になる
- App Store Connect の URL は、アプリの更新と一緒に変える
ToVue は App Store で公開しています。