2012-04-07 20 views
15

Vorrei reindirizzare più voci alla mia pagina di destinazione a un solo URL.Rails 301 Reindirizzamento

i seguenti URL, http://mysite.com e http://www.mysite.com, sarebbe reindirizzare http://www.mysite.com/ utilizzando 301 reindirizzamento. Come si può/dovrebbe essere fatto in Rails?

+0

quale server web stai usando? – alex

risposta

3

ho usato questo post e ha deciso di reindirizzare utilizzando URL non www.

17

non ho provato questo, ma qualcosa di simile dovrebbe funzionare:

class ApplicationController < ActionController::Base 
    before_filter :correct_domain! 

    private 
    def correct_domain! 
    unless request.host == 'www.mysite.com' 
     redirect_to root_url, :status => 301 # or explicitly 'http://www.mysite.com/' 
    end 
    end 
end 

Ma io non sono sicuro se la barra finale è presente l'attributo di accoglienza ...

+0

Grazie Vapire, ma sto ricevendo un errore di ciclo di reindirizzamento quando aggiungo questo al controller dell'app. – Dru

+0

Deve essere fatto nel controller di casa, ha funzionato bene per me. – creativetechnologist

+0

@Dru è solo un'ipotesi, ma forse il tuo '' 'root_url''' non corrisponde al tuo' '' request.host''' (ad esempio non include www). –

10

Utilizzando 301 redirect in Rails

class RedirectController < ApplicationController 
    def index 
    redirect_to :root, :status => :moved_permanently 
    end 
end 
Problemi correlati