2012-04-07 5 views
15

Je souhaite rediriger plusieurs entrées vers ma page de destination vers une URL.Rails 301 Redirection

Les URL suivants, http://mysite.com et http://www.mysite.com, redirigeaient vers http://www.mysite.com/ en utilisant la redirection 301. Comment cela peut-il/devrait-il être fait dans Rails?

+0

qui vous utilisez serveur web? – alex

Répondre

3

je ce post et a décidé de rediriger en utilisant des URL non www.

17

Je n'ai pas essayé, mais quelque chose comme cela devrait fonctionner:

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 

Mais je ne suis pas sûr si le slash est présent dans l'attribut hôte ...

+0

Merci Vapire, mais je reçois une erreur de redirection lorsque je l'ajoute à mon contrôleur d'application. – Dru

+0

Doit être fait dans le contrôleur de la maison, a bien fonctionné pour moi. – creativetechnologist

+0

@Dru juste une supposition mais peut-être votre '' '' root_url''' ne correspond pas à votre '' 'request.host''' (c'est-à-dire n'inclut pas www). –

10

Utiliser 301 redirect dans Rails

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