解決 GitHub Pages 無法驗證 Discord .well-known 網域問題

前言

最近想要替自己的 Discord 綁定驗證網域的功能,但發現踩了一個雷,所以這邊記錄一下。

事發原因

首先 Discord 有兩種驗證方式,一個是 DNS 驗證,另一種是 HTTPS 網域驗證,我是選擇了 HTTPS 網域驗證的方式,因此 Discord 提示我的網域下建立相對應檔案

1
https://你的網域/.well-known/discord

Note
以我自己來講就是 https://israynotarray.com/.well-known/discord

那麼由於我自己是使用 Hexo 所建立的部落格,所以我會輸入以下指令建立

1
2
3
cd hexo-blog
mkdir source/.well-known
touch source/.well-known/discord

內容就寫入 Discord 官方給你的內容

內容

那麼因為預設狀況 Hexo 會忽略 ._ 等這類開頭的檔案,因此你無法直接在 source 資料夾下建立 .well-known 資料夾,這樣就會導致 Discord 無法驗證你的網域。

所以我們要小改一下 Hexo 設置檔案,請先打開 _config.yml 找到

1
2
3
4
5
# Include / Exclude file(s)
## include:/exclude: options only apply to the 'source/' folder
include:
exclude:
ignore:

include 寫入以下:

1
2
include:
- .well-known/**

這樣子你在輸入 hexo g 的時候才會編譯出 .well-known 資料夾

生成

但這時候你可能會很興高采烈的去點一下驗證網域,但你會發現根本沒辦法,就算你透過瀏覽器也無法訪問到 .well-known/discord 檔案,這是因為 GitHub Pages 會忽略 .well-known 資料夾,所以你無法透過 GitHub Pages 來驗證你的網域。

解決方案

要解決的方式就是,請你建立一個儲存庫叫做 .well-known,然後將裡面的檔案放進去

.well-known

接著請記得進去 Setting 把 Pages 打開,讓你的網域可以被訪問到

Setting

修改後會變成以下這樣:

變化

接著你再去訪問一次你的網域,你會發現你可以訪問到 .well-known/discord 這個檔案了,而且是直接下載下來,這時候你再去 Discord 驗證網域,你就會發現你已經成功驗證囉~

Discord

底下這邊也提供 Discord 驗證儲存庫給予參考哩