Skip Navigation
Show nav
Heroku Dev Center
  • Get Started
  • Documentation
  • Changelog
  • Search
  • Get Started
    • Node.js
    • Ruby on Rails
    • Ruby
    • Python
    • Java
    • PHP
    • Go
    • Scala
    • Clojure
  • Documentation
  • Changelog
  • More
    Additional Resources
    • Home
    • Elements
    • Products
    • Pricing
    • Careers
    • Help
    • Status
    • Events
    • Podcasts
    • Compliance Center
    Heroku Blog

    Heroku Blog

    Find out what's new with Heroku on our blog.

    Visit Blog
  • Log inorSign up
View categories

Categories

  • Heroku Architecture
    • Dynos (app containers)
    • Stacks (operating system images)
    • Networking & DNS
    • Platform Policies
    • Platform Principles
  • Command Line
  • Deployment
    • Deploying with Git
    • Deploying with Docker
    • Deployment Integrations
  • Continuous Delivery
    • Continuous Integration
  • Language Support
    • Node.js
    • Ruby
      • Rails Support
      • Working with Bundler
    • Python
      • Background Jobs in Python
      • Working with Django
    • Java
      • Working with Maven
      • Java Database Operations
      • Working with the Play Framework
      • Working with Spring Boot
      • Java Advanced Topics
    • PHP
    • Go
      • Go Dependency Management
    • Scala
    • Clojure
  • Databases & Data Management
    • Heroku Postgres
      • Postgres Basics
      • Postgres Getting Started
      • Postgres Performance
      • Postgres Data Transfer & Preservation
      • Postgres Availability
      • Postgres Special Topics
    • Heroku Data For Redis
    • Apache Kafka on Heroku
    • Other Data Stores
  • Monitoring & Metrics
    • Logging
  • App Performance
  • Add-ons
    • All Add-ons
  • Collaboration
  • Security
    • App Security
    • Identities & Authentication
    • Compliance
  • Heroku Enterprise
    • Private Spaces
      • Infrastructure Networking
    • Enterprise Accounts
    • Enterprise Teams
    • Heroku Connect (Salesforce sync)
      • Heroku Connect Administration
      • Heroku Connect Reference
      • Heroku Connect Troubleshooting
    • Single Sign-on (SSO)
  • Patterns & Best Practices
  • Extending Heroku
    • Platform API
    • App Webhooks
    • Heroku Labs
    • Building Add-ons
      • Add-on Development Tasks
      • Add-on APIs
      • Add-on Guidelines & Requirements
    • Building CLI Plugins
    • Developing Buildpacks
    • Dev Center
  • Accounts & Billing
  • Troubleshooting & Support
  • Integrating with Salesforce
  • Add-ons
  • All Add-ons
  • Guru301
Guru301

This add-on is operated by Wreck Labs

Static IP addresses for your root domain

Guru301

Last updated February 20, 2019

The Guru301 add-on is currently in beta.

Table of Contents

  • Provisioning the add-on
  • Dashboard
  • DNS Configuration
  • Troubleshooting
  • Migrating between plans
  • Removing the add-on
  • Support

Guru301 is an add-on for providing redirect functionality from your root domain (like example.com) to a subdomain (like www.example.com).

Because a root domain cannot use CNAME DNS records, you must use an A record that points to a static IP address. Most cloud platforms like Heroku do not provide static IP addresses out of the box, because of their dynamic nature.

Guru301 solves this problem by giving you one or more static IP addresses backed by rock-solid, high-availability redirect servers, allowing you to use your root domain with your Heroku app.

To follow SEO best practices, Guru301 issues its redirects with the 301 HTTP status code. This code is remembered by search engines, allowing you to consolidate your “link juice” to a single domain rather that splitting it, resulting in better page ranks.

Provisioning the add-on

Guru301 can be attached to a Heroku application via the CLI:

A list of all plans available can be found here.

$ heroku addons:create guru301
-----> Adding guru301 to sharp-mountain-4005... done, v18 (free)

After you provision Guru301, the GURU301_IPS config var will be available in your app’s configuration. It contains either a single IP address or a comma-separated list of IPs (depending on which plan you selected) which you can use for your A record. You can confirm this via the heroku config:get command:

$ heroku config:get GURU301_IPS
54.204.55.40

After you install Guru301, you will need to configure your redirect in the web dashboard and update your DNS settings to fully integrate with the add-on.

Dashboard

The Guru301 dashboard allows you to configure the redirect from your root domain to a subdomain.

You can access the dashboard via the CLI:

$ heroku addons:open guru301
Opening guru301 for sharp-mountain-4005

or by visiting the Heroku Dashboard and selecting the application in question. Select Guru301 from the Add-ons menu.

Guru301 dashboard screenshot

Configuring the redirect

Once logged into the dashboard:

  1. Click Add Domain.
  2. Enter your root domain and the subdomain you’d like to redirect it to.
  3. Click the Add.

DNS Configuration

Log into your DNS provider and create an A record that points your root domain to the IP address stored in GURU301_IPS in your heroku app config. If you are on a plan that gives you multiple IPs, you can create multiple A records.

Troubleshooting

It can take some time – up to 48 hours in the worst case – for DNS changes to propagate.

You can use the host CLI command to inspect your domain’s DNS configuration.

Migrating between plans

Changing plans will provide you with new IP addresses for your A records, but your old address(es) will continue to work in the meantime, so you will not experience any redirect downtime.

Use the heroku addons:upgrade command to migrate to a new plan:

$ heroku addons:upgrade guru301:newplan
-----> Upgrading guru301:newplan to sharp-mountain-4005... done, v18 ($49/mo)
       Your plan has been updated to: guru301:newplan

Removing the add-on

You can remove Guru301 via the CLI:

This will remove your redirect functionality!

$ heroku addons:destroy guru301
-----> Removing guru301 from sharp-mountain-4005... done, v20 (free)

Support

All Guru301 support and runtime issues should be submitted via one of the Heroku Support channels.

Keep reading

  • All Add-ons

Feedback

Log in to submit feedback.

Ziggeo HDrive

Information & Support

  • Getting Started
  • Documentation
  • Changelog
  • Compliance Center
  • Training & Education
  • Blog
  • Podcasts
  • Support Channels
  • Status

Language Reference

  • Node.js
  • Ruby
  • Java
  • PHP
  • Python
  • Go
  • Scala
  • Clojure

Other Resources

  • Careers
  • Elements
  • Products
  • Pricing

Subscribe to our monthly newsletter

Your email address:

  • RSS
    • Dev Center Articles
    • Dev Center Changelog
    • Heroku Blog
    • Heroku News Blog
    • Heroku Engineering Blog
  • Heroku Podcasts
  • Twitter
    • Dev Center Articles
    • Dev Center Changelog
    • Heroku
    • Heroku Status
  • Facebook
  • Instagram
  • Github
  • LinkedIn
  • YouTube
Heroku is acompany

 © Salesforce.com

  • heroku.com
  • Terms of Service
  • Privacy
  • Cookies
  • Cookie Preferences