GitHub PagesのJekyllと独自ドメインを使って任意のURLへのリダイレクトを実現する方法 (+ URL一覧表示)
皆さん、限られたスペースへURLを載せたりする場合どうしていますか?
短縮URLサービスがあるものの、オリジナル感を出すのが難しかったり。
今回は、自前の独自ドメインを使いつつも、短いURLを作成する方法を備忘録として書く。
前提条件
- GitHubアカウントを所有していること
- 独自ドメインを所有していること
…など
リポジトリの作成
GitHub上でサクっと作ってしまう。
右上の + > New repository で Repository name を埋めて Create repository する。
Create a new repository
Jekyllの設定
_config.yml の作成
_config.yml とは、Jekyllの設定を行うファイル。
今回は、リダイレクトの設定が簡単に出来る jekyll-redirect-from プラグインを使用する為、以下のようにする。
gems:
- jekyll-redirect-from
独自ドメインの設定
CNAME の作成
CNAME とは、GitHub Pages上で独自ドメインの設定を行うファイル。
リダイレクトに使用したい自前の独自ドメインを追記する。例は以下。
example.com
DNSレコードの設定
私はCloudflareを使用しているので、Cloudflareを例に説明する。
GitHub Pagesでは、CNAMEレコードのターゲットに {GitHubユーザ名}.github.io を指定する必要があるので、そのように設定を行う。
ルートドメインを使用したい場合は @ を入力
最低限の設定が終わったので、一度 Commit してGitHubのリポジトリに Push する。
GitHub Pagesの有効化
GitHub > 作成したリポジトリ > Settings > GitHub Pages の Source をPushしたブランチに変更して Save する。
GitHub Pagesの有効化
リダイレクトの設定
リダイレクト元のパスに対応したファイルを作成
今回は、https://example.com/o にアクセスすると https://example.org へリダイレクトすると想定する。
リポジトリ直下に o.md ファイルを作成して、以下のようにする (ファイル名がパスに対応)
---
redirect_to: https://example.org
---
Commit してGitHubのリポジトリに Push する。
GitHub PagesのBuildが完了してから https://example.com/o にアクセスすると https://example.org へリダイレクトする。
Example Domain
同じ要領で様々なURLへリダイレクトすることが出来る。
トップページにアクセスするとリダイレクトするURL一覧を表示
リポジトリ直下に index.md ファイルを作成して、以下のようにする。
{% for page in site.html_pages %}
{% if page.url != "/" %}
### {{ page.title }}
`{{ page.url | absolute_url | remove: ".html" | split: "://" | last }}` -> [`{{ page.redirect.to | split: "://" | last }}`]({{ page.redirect.to }})
{% endif %}
{% endfor %}
リダイレクト元のパスに対応したファイル に関しては、以下のように編集する。
---
title: {対応するサイト名など}
redirect_to: {リダイレクト先URL}
---
Commit してGitHubのリポジトリに Push すると、以下のようになる。
こんな感じになる
あとがき
タイトルの内容を実現するために Jekyll や Liquid の公式ドキュメントが非常に役立った。
欲しかったり、大切な情報は公式ドキュメントに書いていることが多いので、読んでみると面白いかもしれない👀
Discussion