2012-04-07 48 views
15

Me gustaría redireccionar varias entradas a mi página de destino a una url.Rails 301 Redirection

Las siguientes direcciones URL, http://mysite.com y http://www.mysite.com, redirigen a http://www.mysite.com/ usando la redirección 301. ¿Cómo puedo/debo hacer esto en Rails?

+0

el que el servidor web está usando? – alex

Respuesta

3

Solía esto post y decidió redirigir usando URL que no sean www.

17

no lo probé esto, pero algo como esto debería funcionar:

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 

Pero no estoy seguro de si la barra final está presente en el atributo de acogida ...

+0

Gracias Vapire, pero estoy recibiendo un error de bucle de redirección cuando agrego esto a mi controlador de aplicación. – Dru

+0

Necesita hacerse en el controlador del hogar, funcionó bien para mí. – creativetechnologist

+0

@Dru solo una suposición, pero tal vez su '' 'root_url''' no coincida con' '' request.host''' (es decir, no incluye www). –

10

El uso de redireccionamiento 301 en Rails

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