301 Redirect Subdomain Forwarding On AWS Route 53

amazon-web-services-logo-large

UPDATED: fixed missing/broken gist link with the code snippet.

Recently I decided to ditch registrar DNS Managers like GoDaddy’s in favor of Amazon’s Route53. I really like their console and the DNS is snappy and responsive, not to mention the handy features when creating and pointing to Load Balancers for your TLD. However, one draw back of Route 53 is the lack of subdomain forwarding. Below is a quick solution.

All you will need is an Amazon S3 bucket, the static website end-point, and a Route 53 CNAME.

1.) Create an S3 Bucket: Name the bucket ie: subdomaintoForward.mydomain.com. It has to be the exact subdomain you wish to forward otherwise Route 53 won’t resolve. Choose the region and create!

create-a-bucket

2.) Enable S3 Website Hosting: Open your new bucket and click the “Properties” tab. Open up “Static Website Hosting” than select “Enable website hosting” and make the “Index document” simply index.html. After that, click “Edit Redirection Rules” to open up a text box.

bucket-properties

Paste in the XML below:

This breaks down a regular URL that you want it to forward too. In this example, I want subdomaintoForward.mydomain.com to 301 redirect to http://domaintoforwardto.com/anything/after/thedomain/index5.html – compare this URL to the XML above, you should be able to figure out the syntax.

Click Save!

3.) Create A CNAME in Route 53: Make note of the “Static Website Hosting” End-point, copy that, then open up Amazon Route 53. Select your Hosted Zone and click “Go to Record Sets”. Click “Create Record Set” and configure your Record. In this example, domaintoForward is the subdomain, use CNAEM, and paste in the Static Web Hosting End-point into Value. Create the record.

amazon-route-53-301-redirect

5 thoughts on “301 Redirect Subdomain Forwarding On AWS Route 53

  1. altitude say:

    Thanks for sharing!

  2. Rich say:

    Where do I get the feature/link to create an S3 Bucket?

  3. Brent say:

    Thanks for sharing. Is there a way to have multiple rerouting rules? For instance say you want reroute:
    subdomaintoForward.mydomain.com to
    http://domaintoforwardto.com/anything/after/thedomain/index5.html

    but you want to also reroute:
    subdomaintoForward.mydomain.com/something-else to
    http://domaintoforwardto.com/anything/after/thedomain/something-different.html

  4. jonathon schleicher say:

    good lord i could kiss you

Leave a Reply

Your email address will not be published. Required fields are marked *