redirectmatch redirecciones redireccionar redireccion htaccess dominio apache rewrite http-post http-status-code-301

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

- Wikipedia