[펌] 404 Error

프로그래밍/Library 2007. 11. 28. 10:55 Posted by galad

http://blog.naver.com/galad/140033607866

출처 블로그 > もも***
원본 http://blog.naver.com/dmsl01/80033521252
 
404 Error 포워딩하기
 
 
간단한 문제는 아니지만 크게 어려운 문제도 아닙니다.
 
해결 방법만 간단히 말하자면 웹서버의 404 오류 처리 루틴을 이용하여 위 문제를 처리할 수 있습니다.
 
구현 원리는 사용자가 http://www.home.net/user 라는 주소로 접근할때 user 라는 경로가 서버에 없을 경우 404 페이지 오류가 발생합니다. 웹서버는 미리 정의된 404 오류 페이지를 불러서 보여주는데, 이때 내가 원하는 처리를 추가 해주면 됩니다.
 
위 부분을 간단한 구현해보겠습니다.
 
먼저 사이트에 다음 파일을 미리 만듭니다.
위치나 파일명은 원하는 데로 해도 상관 없지만 예를 들기 위해 아래에서는 특정 파일명을 사용하였습니다.
 
/error/404.asp
<%
 response.write Request.ServerVariables("QUERY_STRING")
%>
 
그 다음 아래 순서대로 IIS 등록 정보를 변경합니다.
  1. 인터넷 정보 서비스에서 웹사이트의 속성을 엽니다.
  2. 사용자 지정 오류 탭을 선택하고 404 를 찾아 속성 편집 버튼을 클릭합니다.
  3. 메시지 유형URL 로 변경하고, 입력부 /error/404.asp 를 입력합니다.
  4. 확인을 눌러 속성창을 모두 닫습니다.
이제 아무 주소나 입력하여 위의 웹사이트를 입력합니다. 주의 하실 점은 이미 없는 경로를 입력하셔야만 합니다.
 
가령 http://www.home.net/haan 라고 입력하였다면 아래와 같은 결과를 얻을 수 있습니다.
 
404;http://www.home.net/haan
 
위 결과를 보시면 기술적인 문제가 모두 해결된 것을 아실 수 있을겁니다.
 
이제 추가하셔야 할 작업은, 위 QUERY_STRING 경로에서 haan 부분을 분리하여 DB에 해당 사용자가 있는지 확인합니다. 사용자가 있다면 그 사용자에 해당하는 블로그를 화면에 보여주고, 없을 경우에는 일반적인 404 오류와 유사한 화면을 출력합니다. (해당 페이지가 없다는 식의 메시지를 보여줍니다.)
 
 
 
404Error 이전 주소값 알아내기
 

cyworld.com/모모모 는.. 404페이지를 이하는 방식입니다..  404페이지로 이동한다음에 URL을 파싱해서..
모모모 에 해당하는 홈피링크로 이동하는 방식일 것입니다..
대부분의 블로그가 이런식이지 않을까요?
팁텍에 있을듯한데 안보이네여
404에러메세지를 출력할때 현재에러난 페이지의 위치를 알수있는 방법입니다.
테스트환경 : apache 2.0.x,php 4.3.3
아파치설정 :
httpd.conf 파일설정
ErrorDocument 404/error/404.php
404에러페이지를 사용자화한후 주소줄에 에러페이지를 유지한채
에러난 주소값을 알아내는 방법입니다.
404php 파일작성(PHP는 뭐냐?)
http://<?=$_SERVER["HTTP_HOST"]?><?=$_SERVER["REDIRECT_URL"]?>는 존재하지 않습니다. ^^;;

좀더 생각하면 메인페이지를 유지하면서 내부에 404에러를 띄울수도 있습니다.