2009-12-23 23 views
8

Actualmente estoy haciendo mis Griales 301 URL-redirecciones utilizando el siguiente "estilo servlet" bastante engorroso método:301 redirecciones en Grails

def action = { 
    ... 
    if (shouldRedirect) { 
    response.status = 301 
    response.setHeader("Location", "http://url/to/redirect/to.html") 
    render("") 
    return false 
    } 
    ... 
} 

¿Hay alguna más limpio y más compacto manera maravillosa/Grails'y para realizar una redirección 301?

Tenga en cuenta que estoy hablando de la redirección 301, no de los redireccionamientos estándar 302 que se pueden lograr utilizando el mecanismo estándar de Grails redirect(...).

Respuesta

12

Sí, ahora es posible usar redirect y especificar el parámetro permanent como true como se describe here. Por ejemplo:

redirect(url: "http://url/to/redirect/to.html", permanent: true) 
+0

@cdeszaq answer updated – mbrevoort

+0

¿Es mejor establecer todos los redireccionamientos del controlador al estado 301, en lo que se refiere a SEO, o debería dejarlos como 302? –

+0

@Euoliix Si una redirección es realmente permanente, entonces debe usar 301. Si Google ve 302, entonces supuestamente revisará la URL nuevamente más tarde. –

2

El mecanismo redirect en Grails actualmente soporta un parámetro permanent:

permanent (opcional) - Si es verdad la redirección se emitirá con un código de estado 301 HTTP (movido permanentemente), de lo contrario, se emitirá un código de estado HTTP 302

Esto debería resolver adecuadamente su problema, y ​​de una manera muy Grails-y.