2016-07-02 46 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

回答