http://www.mungchung.com/xe/protip/3171

아는 사람은 알겠지만 윈도우 2000까지만해도 가상디렉토리사용해서 url뒤엔 꼭 슬래쉬(/)가 붙었다.(닷넷이 나오면서 웹어플리케이션이란 개념 등장으로 서블릿처럼 url뒤에 슬래쉬 안붙게 할수도 있게 되었음)

예를 들면 http://www.mungchung.com/mypage 라고 접속하면 자동으로 다시 서버에서 http://www.mungchung.com/mypage/ 리다이렉트 시켰다. 이런 것을 http://www.mungchung.com/mypage 처럼 보여주는 팁이다.

이것 말고도 유용하게 사용할수 있는것이 아래 소스처럼 커뮤니티를 생성했을때 http://www.mungchung.com/커뮤니티도메인   이런식으로 url처도 접근할수 있도록 할 수 있다.


아래 소스보면 404에러페이지를 조금 변형한 트릭인데 나중에 까먹을듯 싶어서 적어둔다...

원래는 커뮤니티 생성할대마다 가상디렉토리 사용하려 했으나 웹에서 ADSI 사용권한 문제로 OTL .. -_-;;;






<!--#include virtual="인클루드파일"-->
<%
'=============================================================================
'
'   404 에러 페이지
'       note. 커뮤니티를 url로 손쉽게 접근하기 위해서 404트릭 이용
'             url을 검사해서 TB_COMM.comm_domain 에 있는 도메인이라면
'             http://www.xxxaa.kr/도메인   으로 바로이동하도록 처리
'
'       환경설정 : 1. iis에서 웹사이트 선택후 등록정보
'                  2. 사용자정의 오류탭에서 404에러 선택
'                  3. 형식을 URL로바꾸고 URL은 이파일 경로를 적는다.
'                  4. 원래 404파일 경로 C:WINNThelpiisHelpcommon404b.htm
'
'
'       작성자 : 손민창 2005-02-25 2:40오후
'=============================================================================

    dim strQueryString      ' 쿼리스트링
    dim errorURL            ' 에러 url
    dim errorNum            ' 에러번호
    dim url_comm_domain     ' URL에서 커뮤니티 도메인을 얻어온다.
    dim strServerURL        ' 서버 URL
    dim strServerPort       ' 서버 Port

    dim strSql
    dim db_comm_idx
    dim db_comm_name

    strQueryString  = Request.ServerVariables("QUERY_STRING")
    strServerURL    = "http://"&Request.ServerVariables("SERVER_NAME")&"/"
    strServerPort   = Request.ServerVariables("SERVER_PORT")

    errorNum = (Split(strQueryString,";"))(0)
    errorURL = (Split(strQueryString,";"))(1)

    ' 404에러이면서 뒤의 url이 "/"로 끝나지 않을경우 아래 구문 실행
    if errorNum = "404" and right(errorURL,1) <> "/" then
        url_comm_domain = replace(errorURL,strServerURL,"")
        strSql = "select comm_idx, comm_name from TB_COMM where comm_domain='"&url_comm_domain&"'"
        Set rs = x.Execute(strSql)
        if not rs.eof then
            db_comm_idx = rs(0)
            db_comm_name= rs(1)
            Call CommunityFramePage(db_comm_idx, db_comm_name)
        end if
        rsClose(rs)
    end if
    
    Call ErrorPage_404(errorURL)


'=======================================================
' 함수/프로시저 모음
'=======================================================
    '---------------------------------------------------
    ' 커뮤니티 화면을 보여주는 함수
    '---------------------------------------------------
    Sub CommunityFramePage(comm_idx, comm_name)
        dim outStr
        outStr = outStr & "<html>" & vbCrLf
        outStr = outStr & "<head>" & vbCrLf
        outStr = outStr & "<title>[커뮤니티] " & comm_name & "</title>" & vbCrLf
        outStr = outStr & "</head>" & vbCrLf
        
        outStr = outStr & "<frameset rows=""0,*"" border=0>" & vbCrLf
        outStr = outStr & "    <frame src=""about:blank"" name=blank marginwidth=0 marginheight=0 leftmargin=0 topmargin=0 noresize>" & vbCrLf
        outStr = outStr & "    <frame src=""/community/default.asp?comm_idx="&comm_idx&""" name=body  scrolling=auto marginwidth=0 marginheight=0 leftmargin=0 topmargin=0>" & vbCrLf
        outStr = outStr & "</frameset>" & vbCrLf
        outStr = outStr & "</html>" & vbCrLf
        Response.Write outStr
        Response.End
    End Sub
    
    '---------------------------------------------------
    ' 404 에러페이지 보여주는 함수
    '---------------------------------------------------
    Sub ErrorPage_404(errorURL)
        Response.Write errorURL & " 파일을 찾을 수 없습니다"
    End Sub

%>

+ Recent posts