メインブログを CloudflareからAWS S3に移行した際に、S3のBlock pubic accessをオフ、Static website hostingをオンにしていたので、CloudFrontがS3のREST APIエンドポイントを使用するよう修正しました。この場合CloudFrontはサブディレクトリのindex.htmlファイルを自動的に解決することができないので、以下のURLのパスを適切に変換するCloudFront Functionsを追加しました。あるあるですね。

function handler(event) {
    var request = event.request;
    var uri = request.uri;
    
    // URIが/で終わる場合、index.htmlを追加
    if (uri.endsWith('/')) {
        request.uri += 'index.html';
    }
    // 拡張子がない場合もindex.htmlを追加
    else if (!uri.includes('.')) {
        request.uri += '/index.html';
    }
    
    return request;
}