使用 AWS、CloudFront 和 Route 53 配置子目录
使用 AWS CloudFront 和 Route 53 通过 /docs 子目录托管你的文档。
1
2
3
export const handler = async (event) => {
const request = event.Records[0].cf.request;
// 如果你的子目录不是 /docs,请更新
const subdirectory = '/docs';
// 在下面更新为你的代理 URL
const target = new URL('<从 GitBook 获取的代理 URL>');
// 重写:/docs* -> proxy.gitbook.site
if (request.uri.startsWith(subdirectory)) {
request.uri = target.pathname + request.uri.substring(subdirectory.length);
// 如果存在,移除尾部斜杠
if (request.uri.endsWith('/')) {
request.uri = request.uri.slice(0, -1);
}
request.origin = {
custom: {
domainName: target.host,
port: 443,
protocol: 'https',
path: '',
sslProtocols: ['TLSv1.2'],
readTimeout: 30,
keepaliveTimeout: 5,
customHeaders: {},
},
};
request.headers['host'] = [{ key: 'host', value: target.host }];
request.headers['x-forwarded-host'] = [{ key: 'x-forwarded-host', value: target.host }];
}
return request;
};4
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": [
"edgelambda.amazonaws.com",
"lambda.amazonaws.com"
]
},
"Action": "sts:AssumeRole"
}
]
}5
6
设置
值
设置
值
7
8
9
10
故障排除
最后更新于
这有帮助吗?