我改變了自定義域上的Heroku我的應用程序到一個新的。現在我將創建一個新的Heroku應用程序,其目的僅僅是重定向到第一個應用程序。重定向從舊域到新的(搜索引擎友好)
我在谷歌網站管理員讀了我應該做301重定向這樣的:
http://old.com/anypath/123
to
http://new.com/anypath/123
如何做到在Rails的?
我改變了自定義域上的Heroku我的應用程序到一個新的。現在我將創建一個新的Heroku應用程序,其目的僅僅是重定向到第一個應用程序。重定向從舊域到新的(搜索引擎友好)
我在谷歌網站管理員讀了我應該做301重定向這樣的:
http://old.com/anypath/123
to
http://new.com/anypath/123
如何做到在Rails的?
把這個在在ApplicationControlller過濾器之前:
class ApplicationController
before_action :redirect_if_old
protected
def redirect_if_old
if request.host == 'old.com'
redirect_to "#{request.protocol}new.com#{request.fullpath}", :status => :moved_permanently
end
end
end
在你的控制器動作:
redirect_to "http://new.com#{request.request_uri}", :status => 301
然而,Heroku的有什麼可以爲slightly better option您在自己的開發中心記錄在案:
class ApplicationController
before_filter :ensure_domain
APP_DOMAIN = 'myapp.mydomain.com'
def ensure_domain
if request.env['HTTP_HOST'] != APP_DOMAIN
# HTTP 301 is a "permanent" redirect
redirect_to "http://#{APP_DOMAIN}#{request.request_uri}", :status => 301
end
end
end
謝謝。一個問題 - 這會將所有內容重定向到新域的根目錄,還是會匹配新域中的確切頁面? –
已更新。 Ben雖然打敗了我。 –
也謝謝。對不起,不能標記你的答案。 –
但是,如何重定向所有請求,而不僅僅是「http://old.com/anypath/123" ? –
@MartinPetrov,我更新了我的答案,以顯示如何處理所有請求。 –
謝謝,這看起來很簡單。 –