Skip to content

Instantly share code, notes, and snippets.

@kubosho
Last active March 30, 2023 16:12
Show Gist options
  • Save kubosho/b396e675dd30c32e4b1a70e229c78f39 to your computer and use it in GitHub Desktop.
Save kubosho/b396e675dd30c32e4b1a70e229c78f39 to your computer and use it in GitHub Desktop.
Route handler for blog.kubosho.com in CloudFront Functions
function hasExtension(uri) {
return uri.includes('.');
}
function isLastCharacterSlash(uri) {
return uri.endsWith('/');
}
function isFeedLink(uri) {
return uri.endsWith('/feed');
}
function isOldEntryUri(uri) {
return uri.match(/entry/);
}
function handler(event) {
var request = event.request;
var originalUri = request.uri;
var newUri = originalUri;
if (isOldEntryUri(originalUri)) {
newUri = originalUri.replace(/entry/, 'entries');
return {
statusCode: 308,
statusDescription: 'Permanent Redirect',
headers: { location: { value: newUri } },
};
}
if (isLastCharacterSlash(originalUri)) {
newUri = originalUri + 'index.html';
} else if (isFeedLink(originalUri)) {
newUri = originalUri + '.xml';
} else if (!hasExtension(originalUri)) {
newUri = originalUri + '/index.html';
}
request.uri = newUri;
return request;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment