Esta pregunta está relacionada de alguna manera con mi previous question. El truco de usar $_SERVER['REDIRECT_QUERY_STRING']
parece funcionar solo para las variables $_GET
.
Bueno, tengo un archivo index.php
que maneja todos los 404 redirects
.
Si un usuario solicita una página, que no lo existe, por ejemplo, apple.php?item=23
, a continuación, utilizando $_SERVER['REDIRECT_QUERY_STRING']
puedo conseguir el $_GET
variables item=23
, pero si la variable no es $_GET
pero $_POST
continuación $_SERVER['REDIRECT_QUERY_STRING']
no funciona.
¿Cómo puedo obtener $_POST
variable cuando vuelvo a dirigir a index.php
utilizando la siguiente configuración de
ErrorDocument 404 /index.php
No es un "truco", es simplemente una solución terrible. ¿Por qué no usar 'mod_rewrite'? PD: no, después de la redirección 404 ya ha perdido los datos de la publicación y no puede obtenerlo – zerkms
no estoy seguro, pero creo que perderá todos los datos POST al redirigir. ¿Para qué lo necesitas? tal vez haya alguna forma diferente – miro
Tenga en cuenta que no existe el '404 redireccionamiento'. Los códigos de respuesta 4xx indican un error del cliente (404 indica que el recurso solicitado por el cliente no existe en el servidor), los códigos 3xx son para la redirección.Si desea obligar a un cliente a volver a enviar y una solicitud POST idéntica a un nuevo URI, debe usar un código de estado 307. Pero sospecho que lo que realmente necesita usar aquí es 'RewriteCond% {REQUEST_FILENAME}! -f' y' RewriteCond% {REQUEST_FILENAME}! -d' para reescribir las solicitudes de archivos que no existen para un script específico. – DaveRandom