用 GitHub Pages 架 blog 的人最後都會遇到同一個問題:hungjie19.github.io/blog 這串網址,免費是很佛心,但這不代表你——只代表你用的平台。換 custom domain 是遲早的事,只是在拖「我到底會不會繼續寫」這個問題。
決定開 blog 的當天,我把 domain 一起買了。
為什麼值得花這筆錢:
- SEO 累積跟著 domain 走,不是跟
github.io走——以後換平台,資產不歸零 - 網址代表你這個人,不是你用的工具
- 之後換架構、換 hosting、加功能,你說了算
Domain 廠商比較
| Cloudflare | Namecheap | GoDaddy | |
|---|---|---|---|
| 價格 | 成本價,不加價 | 有時便宜,續費可能漲 | 第一年很便宜,之後不一定 |
| DNS | 內建,全球最快之一 | 需另外設定 | 內建 |
| CDN / Analytics | 免費附贈 | 無 | 無 |
| 介面 | 乾淨 | 普通 | 稍微複雜 |
設定步驟
Step 1|Cloudflare 買 domain
搜尋你喜歡的網域名稱,魔法小卡拿出來,結帳,完成。
Step 2|Cloudflare DNS 設定
-
進 Cloudflare Dashboard → 選
{your_domain} -
左側 DNS → Records
-
新增一筆:
- Type:CNAME
- Name:
@(代表根域名) - Target:
your.github.io - Proxy status:橘色雲(Proxied)✓
-
再新增一筆 www redirect(可選但建議):
- Type:CNAME
- Name:
www - Target:
{your_domain} - Proxy:橘色雲
Step 3|SSL/TLS 設成 Full
左側選單 SSL/TLS → Overview → 選 Full(不是 Full (strict),不是 Flexible)
Step 4|GitHub Pages 填 custom domain
- 進 GitHub repo → Settings → Pages
- Custom domain 填
{your_domain}→ Save - 等它 DNS check 跑完(幾秒到幾分鐘)
- Enforce HTTPS 打勾
Step 5|Astro Blog 設定更新
5-1. astro.config.mjs
export default defineConfig({
site: '{your_domain}',
...
})
5-2. src/layouts/BlogLayout.astro
const siteUrl = "{your_domain}";
5-3. public/robots.txt
Sitemap: {your_domain}/sitemap-index.xml
結果
domain jasperhung.dev 是自己的。
退路少了一條,只剩下持續分享文章。