2020年5月28日 星期四

在 cloudflare 免費使用無限多個 url redirect by workers

Cloudflare 是一家著名的免費CDN服務商,可以幫你把整個domain都做快取,而且他提供免費DNS的服務,一般免費的DNS服務大多可以設定50條左右的DNS規則,而Cloudflare 提供的免費DNS服務,可以免費使用1000條的規則,簡直完爆市面上所有DNS服務廠商。

但是這麼棒的DNS服務廠商也是有缺點的,就是他支援的domain URL redirect,免費的版本只能使用3個,對於我這麼愛用url redirect的人來說真是痛苦...

不過好在cloudflare提供workers這種serverless的服務,免費版一天最多能有10萬次request,寫點code就能使用一天10萬次的url redirect,對一般人來說,超級夠用拉~~~

使用方法
1.創造一個workers,命名為url_redirect
2.填入以下代碼

async function handleRequest(request) {
  let requestURL = new URL(request.url)
  console.log(requestURL.hostname)
  let path = requestURL.hostname.split('.')[0]
  let location = redirectMap[path]
  if (location) {
    return Response.redirect(location, 301)
  }
  return fetch(request)
}
addEventListener('fetch', async event => {
  event.respondWith(handleRequest(event.request))
})
const redirectMap = {
  apple: 'https://www.apple.com/',
  google: 'https://www.google.com/',
  yahoo: 'https://www.yahoo.com/',
}


3. redirectMap 就是要轉址的url 依此類推,填完後儲存並發布
4.到要部屬的domain下點worker,新增路由如下,並指定worker為url_redirect
*.your_domain/*

5.最重要的一點,dns那邊要配合設定CNAME,url隨便打就可以了,沒做此步驟是不會生效的

6.之後 打 xxx.you_domain 就會自動 URL redirect到想去的地方囉