기본적으로 404 not found 등의 오류인 경우에는 Web.config의 

system.web 부분의 customErrors와 system.webServer 부분의 httpErrors 두 부분이 모두 작동한다.

customErrors는 .asp, .aspx 등 .NET 페이지 호출인 경우에 동작하고

httpErrors는 기타 경로 호출인 경우에 동작한다.


>> 참고: https://stackoverflow.com/questions/2480006/what-is-the-difference-between-customerrors-and-httperrors


그리고, customErrors가 동작하는 경우에는 URL 뒤에 ?aspxerrorpath=… 이 자동으로 붙게 되는데

이것이 붙지 않도록 하는 여러가지 방법 중 가장 간단한 것은 

customErrors의 defaultRedirect에 의미없는 URL 파라미터를 붙여주는 것.

즉, defaultRedirect="/Template/Error/SystemError?page=1" 와 같이 뒤에 파라미터가 붙어 있으면 

추가로 aspxerrorpath가 더 붙지 않는다.


또, 

customErrors의 defaultRedirect 속성과 redirect 속성에는 '~' 응용 프로그램 루트 URL 문자를 쓸 수 있는데

httpErros의 path 속성에는 '~' 응용 프로그램 루트 URL 문자를 쓸 수 없다.

(ASP.NET인 경우에만 '~'가 응용 프로그램 루트 URL로 변환되기 때문이다.)



기타 방법은 아래 참고.

>> 참고: https://stackoverflow.com/questions/31874403/disable-aspxerrorpath-parameter-in-asp-net-url

>> 참고: https://forums.asp.net/t/1751599.aspx?Can+I+remove+aspxerrorpath+query+string+parm+





Posted by Thermidor™ 떼르미

댓글을 달아 주세요