Las páginas 404 personalizadas no pueden devolverse debido a problemas de ruta relativos
-
05-07-2019 - |
Pregunta
Mi sitio actualmente implementa páginas 404 personalizadas que hemos mapeado en IIS. Entonces, cuando un usuario hace algo como www.mysite.com/foo/bar/doesnotexist, ejecutará la URL 404.aspx. Esto funciona muy bien, pero al inspeccionar el HTML devuelto, la URL de publicación del formulario es relativa:
<form method="post" action="404.aspx?404%3bhttps%3a%2f%2ftestserver%3a443%2ffoo%2fbar%2fdoesnotexist" onsubmit="javascript:return WebForm_OnSubmit();" id="aspnetForm">
Si observa detenidamente, la URL de la acción se publica en 404.aspx pero es una ruta relativa, por lo que intenta ejecutarse si realizamos una devolución de datos www.mysite.com/foo/bar/doesnotexist/404.aspx. ¿Cómo consigo que mis páginas 404 ejecutadas se devuelvan correctamente? (www.mysite.com/404.aspx)
Gracias.
Solución
Victor,
Su pregunta es un duplicado, así que creo que probablemente encontrará su respuesta aquí .
Dado que eres nuevo aquí, con suerte, el cierre de Nazi te cortará un poco. Básicamente, cuando escribe una pregunta, debe haber una lista de preguntas similares que aparecen justo debajo de su pregunta. Si ves una pregunta que parece que puede responder a la tuya, sigue el enlace y échale un vistazo antes de publicar. 9 de cada 10 veces su pregunta ya puede haber sido respondida.
Buena suerte para encontrar su respuesta, creo que debería haber mucha buena información en ese enlace.
Otros consejos
Esto también puede suceder si está utilizando axjx y arrastrando una página a otra y las páginas están en directorios diferentes, de manera fácil es reescribir el objeto de acción de formularios en la carga de la página desde la raíz de su sitio web.
p.
//Rewirte forms post action.
form1.Action = "/{dir}/{currentpage}.aspx?" + Request.QueryString;