2016-07-02 49 views
1

我已经成功地使用代码来重定向来自example.com我的应用程序www.example.com如何重定向到www.example.com/products从example.com/products用Rails 2.3.3

我用如下:

class ApplicationController < ActionController::Base 


    before_filter :ensure_domain 


    APP_DOMAIN = "www.example.com" 
    NAKED_DOMAIN = "example.com" 
protected 

    def ensure_domain 
    if request.env['HTTP_HOST'] == NAKED_DOMAIN && RAILS_ENV =='production' 
     #HTTP 301 is a permanent redirect 
     redirect_to "http://#{APP_DOMAIN}", :status => 301 
    end 
    end 

这适用于转到主页的链接。

但是我刚刚意识到,如果我有以下网址:

example.com/products

用户获得在www.example.com重定向到主页,不www.example。 com/products

如何重定向到用户尝试访问的URL,但是www.example.com根目录而不是example.com根目录。

换句话说,如果用户希望以下内容:

example.com/products

我送他们到

www.example.com/products

感谢您的任何援助。

我在Heroku上托管。 我正在使用Zerigo DNS。当我尝试使用DNS将所有流量从裸域转发到www.example.com域时,该URL仍显示裸域。

所以,没有工作。

+0

这最好由您的服务器完成,而不是由您的应用程序代码完成。你需要捕获所有从未到达轨道的网址,比如静态资产等......重新发布你的问题,包括你正在使用的服务器的详细信息,或者在你的DNS设置中甚至更好 – jamesc

+0

查看我更新的答案。 – jamesc

回答