Update the shorturl redirect to support paths and query arguments

This commit is contained in:
Jocelyn Badgley 2023-05-20 09:44:11 -07:00
parent d77141a94a
commit 93a5a4e210
No known key found for this signature in database
GPG Key ID: 909059F0FFF842D8
3 changed files with 16 additions and 12 deletions

View File

@ -1,12 +1,16 @@
exports.handler = async () => {
exports.handler = async (event) => {
const { uri, querystring } = event?.Records?.[0]?.cf?.request || {};
const url = new URL(uri, `https://genderdysphoria.fyi`);
url.search = new URLSearchParams(querystring);
const body = `
<!DOCTYPE html>
<html lang="en">
<head><title>301 Moved Permanently</title></head>
<head><title>Gender Dysphoria Bible</title></head>
<body bgcolor="white">
<center><h1>301 Moved Permanently</h1></center>
<hr><center>CloudFront Lambda@Edge</center>
<h1>Redirecting...</h1>
<a href="${url}">Click here if you are not redirected.</a>
</body>
</html>
`;
@ -17,9 +21,9 @@ exports.handler = async () => {
headers: {
location: [{
key: 'Location',
value: `https://genderdysphoria.fyi`,
value: url.toString()
}],
},
body,
body
};
};

View File

@ -26,6 +26,6 @@ provider "namecheap" {
user_name = var.namecheap.username
api_user = var.namecheap.username
api_key = var.namecheap.apikey
client_ip = chomp(data.http.externalip.body)
client_ip = chomp(data.http.externalip.response_body)
use_sandbox = false
}

View File

@ -7,8 +7,8 @@ resource "aws_cloudfront_origin_access_identity" "origin_access_identity" {
resource "aws_cloudfront_distribution" "site" {
origin {
domain_name = aws_s3_bucket.src.bucket_regional_domain_name
origin_id = "S3-Website-${aws_s3_bucket.src.website_endpoint}"
domain_name = aws_s3_bucket_website_configuration.src.website_endpoint
origin_id = "S3-Website-${aws_s3_bucket_website_configuration.src.website_endpoint}"
custom_origin_config {
origin_protocol_policy = "http-only"
@ -30,7 +30,7 @@ resource "aws_cloudfront_distribution" "site" {
default_cache_behavior {
allowed_methods = ["GET", "HEAD"]
cached_methods = ["GET", "HEAD"]
target_origin_id = "S3-Website-${aws_s3_bucket.src.website_endpoint}"
target_origin_id = "S3-Website-${aws_s3_bucket_website_configuration.src.website_endpoint}"
forwarded_values {
query_string = false