2011-09-28 16 views
9

Heroku uygulamasındaki özel alanı yenisiyle değiştirdim. Şimdi sadece ilk uygulamaya yönlendirmek için yeni bir Heroku uygulaması yaratacağım.Eski etki alanından yenisine (SEO dostu) yönlendirme (SEO dostu)

http://old.com/anypath/123 

to 

http://new.com/anypath/123 

Nasıl bu Rails yapacağız:

böyle yönlendirmek ben bir 301 yapması gereken Google Web Yöneticileri okumak? ApplicationControlller süzgeçten önce bir de

cevap

25

koyun bu: Denetleyiciniz eylem olarak

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 
+1

Ancak tüm istekleri nasıl yönlendiririm? "Http://old.com/anypath/123" ? –

+1

@MartinPetrov, Tüm isteklerin nasıl yapılacağını göstermek için cevabımı güncelledim. –

+0

Teşekkürler, bu basit görünüyor. –

5

: Ancak

redirect_to "http://new.com#{request.request_uri}", :status => 301 

, Heroku onların dev merkezinde belgelenmiş bir slightly better option olabilir şeylere sahip:

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 
+0

Teşekkürler. Bir soru - Bu, her şeyi yeni alanın köküne yönlendirecek mi yoksa yeni alandaki tam sayfayı eşleştirecek mi? –

+0

Güncellendi. Ben onu bana dövdüm. –

+0

Teşekkür ederim. Cevabını işaretleyemediğim için üzgünüm. –

İlgili konular