티스토리 뷰

사이트 관리를 위해서
매번 특정 사이트마다 인스턴스를 위해 별도로 서비스를 올리는 바보같은 스튜를 위해
알리아스별로 자동으로 이동할 페이지를 설정하게 만들어주기로 했다.
규칙되로 정해진 url에 해당 페이지가 존재하지 않는경우는 default help 페이지로 이동하고
사이트별 헬프 페이지가 존재하는경우는 그 페이지로 간다.

이를 위해서 사용한 것이 404에러.
보통은 iis설정에서 에러페이지를 따로 정해주고 거기서 분기하는 모냥이다..
근데 이 방법이 사알 귀찮고.. 이 헬프페이지에서만 사용할 것이기 때문에
다른 방법을 검색해보았다.

아래는 특정 페이지에 대한 url을 검토하고
존재하지 않으면 나타나는 에러를
리줌상태에서 처리하고 에러를 클리어해버린다.


siteAlias = Session("SITE_ALIAS")

helpUrl = "help/help.html"
helpDownUrl = "help/help_down/download.asp"

IF siteAlias <> "" THEN
    helpUrl = lcase( "global_custom/" & siteAlias & "/help/" & siteAlias & "_help.html")
    helpDownUrl = lcase( "global_custom/" & siteAlias & "/help/" & siteAlias & "_help_down/" & siteAlias & "_download.asp")
    'response.write "helpUrl = " & helpUrl
    'response.write "helpDownUrl = " & helpDownUrl
       
    sContextUrl = Request.ServerVariables("SCRIPT_NAME")
    sContextUrl = "http://" & Request.ServerVariables("HTTP_HOST") & replace(Request.ServerVariables("SCRIPT_NAME"), "help/sys.asp", "")
   
    sUrl = lcase( sContextUrl & helpUrl )
   
    'response.write("sUrl = " & sUrl)
    set oHttp = Server.CreateObject("MSXML2.ServerXMLHTTP")
   
    on error resume next
    oHttp.setTimeouts 6000,100,100,100
    oHttp.Open "GET", sUrl, False
    oHttp.Send ""
   
    status = oHttp.status
    'response.write "helpUrl = " & helpUrl
    IF err.number > 0 or status <> 200 THEN
        'IF status = 404 THEN
            'response.write "what??what??2"
        'END IF
        helpUrl = "help/help.html"
        Err.Clear
    END IF
    set oHttp = Nothing

    sUrl = lcase( sContextUrl & helpDownUrl )
    'response.write "sUrl = " & sUrl
    on error resume next
    oHttp.setTimeouts 6000,100,100,100
    oHttp.Open "GET", sUrl, False
    oHttp.Send ""
   
    status = oHttp.status
    'response.write "helpDownUrl = " & helpDownUrl
    IF err.number > 0 or status <> 200 THEN
        helpDownUrl = "help/help_down/download.asp"
        Err.Clear
    END IF
    set oHttp = Nothing
   
END IF
반응형