Skip to content

Commit

Permalink
Merge pull request #1040 from aligent/feature/JBH-615_set_is_a_bot_he…
Browse files Browse the repository at this point in the history
…ader

JBH-615: Set is a bot header
  • Loading branch information
krishanthisera authored Mar 28, 2023
2 parents 5d877d5 + d397a25 commit c4b9134
Showing 1 changed file with 20 additions and 14 deletions.
34 changes: 20 additions & 14 deletions packages/lambda-at-edge-handlers/lib/prerender-check.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,25 +11,31 @@ export const handler = async (
): Promise<CloudFrontRequest> => {
let request = event.Records[0].cf.request;

// If the request is from a bot, is not a file and is not from prerender
// then set the x-request-prerender header so the origin-request lambda function
// alters the origin to prerender.io
if (
!IS_FILE.test(request.uri) &&
IS_BOT.test(request.headers["user-agent"][0].value) &&
!request.headers["x-prerender"]
) {
request.headers["x-request-prerender"] = [
/**
* If the request is from a bot, is not a file and is not from prerender
* then set the x-request-prerender header so the origin-request lambda function
* alters the origin to prerender.io
* "x-is-a-bot" header should be whitelisted in the respective behaviors
*/
if (IS_BOT.test(request.headers["user-agent"][0].value)) {
request.headers["x-is-a-bot"] = [
{
key: "x-request-prerender",
key: "x-is-a-bot",
value: "true",
},
];
if (!IS_FILE.test(request.uri) && !request.headers["x-prerender"]) {
request.headers["x-request-prerender"] = [
{
key: "x-request-prerender",
value: "true",
},
];

request.headers["x-prerender-host"] = [
{ key: "X-Prerender-Host", value: request.headers.host[0].value },
];
request.headers["x-prerender-host"] = [
{ key: "X-Prerender-Host", value: request.headers.host[0].value },
];
}
}

return request;
};

0 comments on commit c4b9134

Please sign in to comment.