2011-03-22 14 views

Respuesta

4

Uso del Heroku complemento dominios personalizados:

heroku addons:add custom_domains:basic 
heroku domains:add www.myapp.com 
heroku domains:add myapp.com 

Además, usted tiene que tomar algunos pasos de configuración en la interfaz de administración de su proveedor de dominio. Necesita un CNAME para proxy.heroku.com y tres A-RECORDs para las direcciones IP de Heroku. Lo encuentras en Heroku Docs.

Modifíquelo para responder a otra respuesta a continuación. Puede redirigir myapp.com a www.myapp.com en su routes.rb:

constraints(:host => /^communityguides.eu/) do 
    root :to => redirect("http://www.communityguides.eu") 
    match '/*path', :to => redirect {|params| "http://www.communityguides.eu/#{params[:path]}"} 
    end 
1

en primer lugar si no desea que su myapp.heroku.com se indexe simplemente agregando metaetiqueta de robot en su encabezado y proporcione el valor "nofollow".

y para la redirección sólo tiene que añadir otra etiqueta meta de actualización:

<meta http-equiv="refresh" content="2;url=http://www.heroku.com/"> 

el valor de contenido es en cuestión de segundos, el ejemplo anterior dirigirá visiotrs en 2 segundos a su página principal.

creo que sirve

2

rel canónica es una posibilidad sólo hay que poner <link rel="canonical" href="http://mydomain.com"/>, <link rel="canonical" href="http://mydomain.com/page"/>, ... en sus páginas de la aplicación.

ver http://www.google.com/support/webmasters/bin/answer.py?answer=139394

Google considerará la dirección URL en el elemento canónica como el ressource derecha de esa página específica.

2

La primera respuesta va parte del camino para resolver el problema, sino que introduce un nuevo problema.

Si agrega www.myapp.com y myapp.com, tendrá que encargarse de redireccionar uno de estos al otro dentro de su aplicación, por lo que si elige www.myapp.com como su principal, desea compruebe si la URL solicitada NO ES www.myapp.com y redirija la solicitud a www.myapp.com; esto cubrirá las solicitudes de redirecciones que llegan a myapp.com y myapp.heroku.com correctamente. Hay un ejemplo de Heroku en sus documentos here.

Además, debe deshacerse del contenido que Google ya ha indexado en el dominio de Heroku. Tendrá que utilizar Google WebMaster tools para cambiar el dominio de www.myapp.com - es un proceso relativamente sencillo una vez que haya iniciado sesión en las herramientas para webmasters

+0

Usar las Herramientas para webmasters de Google para cambiar el dominio a otra cosa no funciona para los subdominios. Al menos no lo hice funcionar. ¿Es posible hacer algo al respecto? – Cristian

5

Según Heroku docs para dominios personalizados, puede hacerlo de esta manera:

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}", :status => 301 
    end 
    end 
end 

Utilizo este método y funciona bien. Tenga en cuenta que dado que la redirección devuelve un estado de 301 http (una redirección permanente), su sitio no será penalizado por el contenido duplicado.

El estado 301 es el único punto que falta en la solución de Markus, pero creo que es importante si su preocupación es con el SEO.

Editar: Algo que no figura en los documentos y olvidé mencionarlo: debe excluir los entornos en los que no desea que se aplique la redirección. Se podría cambiar la declaración if a algo como:

if request.env['HTTP_HOST'] != APP_DOMAIN && ENV["RAILS_ENV"] != 'development' 
3

sugiere emplear rack-canonical-host para redirigir subdominio de Heroku a su dominio personalizado.

0

Uso del hide_heroku gema, que utiliza las cabeceras HTTP X-Robots-Tag para evitar que los buscadores indexen cualquier cosa bajo * .herokuapp.com

Cuestiones relacionadas