Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Making rails-reverse-proxy work for a site not on Webflow with a blog hosted on Webflow with Href Prefix #35

Open
vinodlala opened this issue Oct 17, 2019 · 1 comment

Comments

@vinodlala
Copy link

I wrestled with making this gem work with Webflow for a few days. Hopefully this will help someone do this in minutes.

Background:

We have a Rails 5 website on www.asdf.com (not the actual site), that is not hosted by Webflow. We use Cloudflare.

We have a blog that someone built on Webflow at asdf-blog.webflow.io (not the actual blog).

Goal

Make it so that www.asdf.com/blog points to asdf-blog.webflow.io. The url still shows as www.asdf.com/blog, but displays the content at asdf-blog.webflow.io.

Also, make it so that www.asdf.com/blog/posts/my-first-post (with /blog) still shows a url of www.asdf.com/blog/posts/my-first-post (with /blog), but displays the content at asdf-blog.webflow.io/posts/my-first-post (without /blog).

Hint

On Webflow, do not mess with changing slugs on Designer.

Just change the project settings under Hosting and Custom Code.

Steps

I followed the directions at https://university.webflow.com/article/href-prefix

Screen Shot 2019-10-17 at 12 14 51 PM

For those steps:

Step 1 - This was already done.

Step 2 - I got someone to pay for the plan.

Step 3 - I did the following - installing the gem, adding the routes, and adding the controller.

In my Rails app, I installed this rails-reverse-proxy gem.

In routes.rb, I added:

  get "/blog/*path", to: "blog#index"
  get "/blog", to: "blog#index"

I added the controller:

# frozen_string_literal: true

class BlogController < ApplicationController
  include ReverseProxy::Controller

  BLOG_URL = "https://asdf-blog.asdf.com"

  def index
    reverse_proxy BLOG_URL, path: "/#{params[:path]}"
  end
end

Step 4 - Two parts - on Webflow and on Cloudflare.

Step 4a - On the Webflow project settings, under the Hosting tab, I added a custom domain, asdf-blog.asdf.com aka BLOG_URL.

Step 4b - On Cloudflare, I arranged a rule to be set up, which is hinted at during Step 4a.

Type was CNAME.

Name was asdf-blog (the same subdomain as what I set up for the custom domain on Webflow project settings under Hosting).

Content was proxy-ssl.webflow.com.

Proxy status was DNS (a Proxy status of Proxied did not work at the time).

Step 5 - On Webflow project settings, under Custom Code, I set Href Prefix to /blog.

Step 6 - I clicked the Save Changes and the Publish button for the publish destinations, especially publishing to asdf-blog.asdf.com.

Note

The links on the Rails 5 website, asdf.com/blog (with a path that is prepended with /blog), will work because those requests will go through BlogsController, and the path is getting changed to /#{params[:path]} (removing /blog from the request to Webflow).

However, the links on asdf-blog.webflow.io and asdf-blog.asdf.com will not work because of the Href Prefix adding /blog to all links, but that doesn't matter in terms of the goals for making asdf.com/blog work. This is because requests made to Webflow directly will have /blog and will not have that request changed by BlogsController. Webflow will return a 404 because it doesn't know anything about /blog.

@eyupatis
Copy link

Hey everyone, I shared a blog post about this topic in more detail. I hope the post can help someone that encounters this issue: Serve Webflow Pages On The Same Subdomain With Rails App

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants