重定向从旧域到新的(搜索引擎友好)
我改变了自定义域上的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,我更新了我的答案,以显示如何处理所有请求。 –
谢谢,这看起来很简单。 –