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 = ` const body = `
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head><title>301 Moved Permanently</title></head> <head><title>Gender Dysphoria Bible</title></head>
<body bgcolor="white"> <body bgcolor="white">
<center><h1>301 Moved Permanently</h1></center> <h1>Redirecting...</h1>
<hr><center>CloudFront Lambda@Edge</center> <a href="${url}">Click here if you are not redirected.</a>
</body> </body>
</html> </html>
`; `;
@ -17,9 +21,9 @@ exports.handler = async () => {
headers: { headers: {
location: [{ location: [{
key: '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 user_name = var.namecheap.username
api_user = var.namecheap.username api_user = var.namecheap.username
api_key = var.namecheap.apikey api_key = var.namecheap.apikey
client_ip = chomp(data.http.externalip.body) client_ip = chomp(data.http.externalip.response_body)
use_sandbox = false use_sandbox = false
} }

View File

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