すでにあるサイトのコンテンツの一部をサブドメインに移行したい
すでにパスが公開されているのでリダイレクトなのでFastlyでどうやるのかを調べた
まずは、DNSにてサブドメインを作成し、Fastlyではサービスとドメインを新たに作成する
料金はStarterプランであれば、20サービス、20ドメイン作成することができ、従量課金の場合は2ドメインまで無料
リダイレクトの設定
既存パスをサブドメイン配下のパスにする方法は以下
まずはinitでリダイレクトテーブルを定義する
table solution_redirects {
"/source1": "/dest1",
"/source2": "/dest2"
}
次にvcl_recvでエラーをトリガーし、RECV イベントからERROR イベントに移動する
if (table.contains(solution_redirects, req.url.path)) {
error 618 "redirect";
}
このとき 600 未満の HTTP ステータス コードは仕様で予約されているため、600 ~ 699 の範囲のものを使用する
最後にvcl_errorで次のようにリダイレクト処理を行う
if (obj.status == 618 && obj.response == "redirect") {
set obj.status = 308;
set obj.http.Location = "https://" + req.http.host + table.lookup(solution_redirects, req.url.path) + if (std.strlen(req.url.qs) > 0, "?" req.url.qs, "");
return (deliver);
}
この設定のテストは Fastly Fiddle で試すことができる