redirecciones - Apache 301 Redirecciona y conserva los datos del post.
redirect 301 (3)
El uso de 301 redirecciones para la reescritura general de URL no es el camino a seguir. Este es un problema de rendimiento (especialmente para dispositivos móviles, pero también en general), ya que duplica el número de solicitudes de su página.
Piense en utilizar una herramienta de reescritura de URL como URLrewriteFilter
de Tuckey o apache mod_rewrite
.
Lo que Ray dijo es cierto, esto es solo un comentario adicional sobre su enfoque general.
He implementado URLs de SEO usando redirecciones de Apache 301 a un ''redirect.cfm'' en la raíz del sitio web que maneja toda la creación de URL y la entrega de contenido.
Los datos de publicación se pierden durante una redirección 301.
No pudiendo encontrar una solución hasta ahora, hemos intentado excluir el método de publicación de las reescrituras. En el peor de los casos, podríamos usar las URL de tipo antiguo para los métodos de publicación.
¿Hay algo que se pueda hacer?
Gracias
Los datos POST se descartan en la redirección, ya que un cliente realizará una solicitud GET a la URL especificada por el 301. Período.
La única opción es convertir los parámetros POST en parámetros GET y agregarlos al final de la URL a la que se redirige. Esto no se puede hacer en una reescritura de archivos .htaccess.
Una opción es capturar las solicitudes POST a la url para ser redirigidas y pasarlas a una página para manejar la redirección. Necesitaría realizar la transposición de los parámetros en el código y luego emitir el encabezado de redireccionamiento con el parámetro adjunto a la nueva URL de esa manera.
Actualización: como se señaló en los comentarios a esta respuesta, si redirige a otra URL que especifica parámetros POST y se accede a esa URL sin parámetros (o los parámetros son variables), debe especificar un enlace a la URL canónica de la página. .
Diga que el formulario POST redirige transpuesto al siguiente recurso GET:
http://www.example.com/finalpage.php?form_data_1=123&form_data_2=666
Usted agregaría este registro de enlace a la sección de encabezado de la página:
<link rel="canonical" href="http://www.example.com/finalpage.php" />
Esto aseguraría que todo el valor de SEO se otorgaría a http://www.example.com/finalpage.php y evitaría posibles problemas con el contenido duplicado.
Usar un 307
debe ser exactamente lo que quieres
307 Temporary Redirect (since HTTP/1.1)
In this case, the request should be repeated with another URI; however, future requests
should still use the original URI.[2] In contrast to how 302 was historically implemented,
the request method is not allowed to be changed when reissuing the original request. For
instance, a POST request should be repeated using another POST request