IIS에서 HTTP 리디렉션 이용하기





    리디렉션 이란?


    원래 접속한 URL주소를 새로운 다른 주소로 자동으로 연결해주는 기능입니다. 웹 포워딩과 비슷한 역할을 하는데, 이전 접속 주소를 새 접속 주소로 바꿔주고 접속해주는 역을 합니다.

    쉽게 생각하면 휴대폰 번호를 바꾸면 요즘 통신사에서는 무료로 전화번호 안내 및 자동전환, 전달 서비스를 해주고 있는데 그것과 비슷한 개념으로 웹사이트를 운영중에 도메인 주소가 바뀌게 되면 자동적으로 연결이 되게끔 전달해주는 역을 합니다.

    이러한 기능들을 이용하여 여러개의 도메인을 보유하고 있는 경우에 하나의 사이트로 접속하게끔 만들 수 있습니다.


    만약 개인 서버를 이용하여 같은 서버내로 리디렉션을 하는 것을 추천하지 않습니다. (바로 연결하는 것보다 느리기 때문 에러 안내 페이지 제외)

    같은 서버에서 운영중인 사이트라면 바인딩을 추가하여 하나의 사이트로 접속하게끔 연결 도메인을 추가하는 것이 바로 오게끔 할 수 있습니다. 


    관련글


    12. 네임서버처럼 바인딩 설정하기


    IIS 여러 웹 페이지 사용하기 - 도메인 설정하기



    리디렉션을 이용해서 다른 URL 주소로 이동시키는 경우는 좀 더 효율적인 부분에서 생각을 해본다면, 서버를 이전해서 다른 서버에서 사이트를 운영중인 경우에 더 합리적입니다. 같은 서버 내에서 리디렉션은 전혀 의미가 없다고 봅니다. 바인딩만 묶어주면 되니깐요.


    사실 서버를 이전했다고 하더라고 해당 서버에 기존에 사용하던 도메인 주소를 연결해주면 되지만, 임시로 사용을 하는 경우나 일시적으로 잠깐 페이지를 돌려야 하는 경우 굉장히 유용하다고 할수 있습니다. 특히, 사이트를 점검한다든지, 공사중이라든지 하는 파킹페이지로 사용할 때 리디렉션은 더 좋은 효과를 가지게 됩니다.


    역시나 제가 운영하는 개인 서버도 IIS를 웹서버로 사용하고 있기 때문에 IIS에서 리디렉션을 할 수 있는 방법을 소개하고자 합니다.




    IIS에서 리디렉션 연결하기


    IIS에서는 비교적 쉬운 방법으로 리디렉션 연결을 지원합니다.


    일반적으로 리디렉션 하는 이유는 위에서도 나열하였지만, 다음과 같은 경우에 사용하면 좋습니다.


    1. 사이트 수정중 또는 공사중과 같은 테스트시에 관련 페이지로 자동 연결이 필요할 때

    2. 서버와 도메인 주소를 한번에 이전하였는데 도메인 주소를 일시적으로 남겨둘 때

    3. 서버외에 사이트가 다른 외부 서비스로 연결을 해야할 때

    4. http 주소를 https 주소로 변환할 때


    이런 경우에만 사용하는 것이 좋을 듯합니다.


    그럼 본격적인 HTTP 리디렉션을 설정해 보도록 합니다. IIS는 대부분 GUI형태로 지원하기 때문에 어렵지 않게 설정가능합니다.

    먼저, IIS를 실행한 뒤 앞으로 다른 사이트로 리디렉션 시킬 사이트를 선택하고 HTTP 리디렉션을 실행합니다.



    여기서 이 사이트를 앞으로 어디로 리디렉션 시킬것인지 설정합니다.


    해당 페이지가 앞으로 자동으로 이동하게 될 사이트 입니다. 



    하단의 추가 옵션인 동락 리디렉션에 대해 좀 더 설명을 드리자면,

    모든 요청을 대상 기준 대신 정확한 대상으로 리디렉션

    아까 리디렉션의 사용 목적중에 공사중이나, 점검중에 안내 페이지를 표시할 파킹페이지로 연결시킬 수 있다고 했는데, 그 때 사용해야 합니다.

    만약, 연결할 안내 페이지의 주소가 http://www.mydomain.com/error.html이라고 한다면, 해당 옵션을 체크하셔야 온전하게 해당 페이지로 이동하게 됩니다. 

    이 옵션의 체크가 되어있지않다면 http://www.mydomain.com/ 으로 접속을 하게 됩니다. (정확한 문서의 위치가 아니기 때문에) 일반적인 서버 이전이라면 체크를 안하셔도 됩니다.


    요청을 이 디렉터리(하위 디렉터리 제외)의 콘텐츠로만 연결

    만약 이 옵션을 체크를 안하고 리디렉션을 http://www.mydomain.com/xe/ 라는 주소로 연결을 하였다면 그 하위 주소인  http://www.mydomain.com/xe/admin 폴더와 같은 하위 디렉토리도 같이 리디렉션 요청을 하게 되는데  이 옵션을 체크하게 되면 해당 디렉터리인 http://www.mydomain.com/xe/ 로만 요청하게 됩니다.


    상태코드 (브라우저 상에서 직접적으로 보이지 않습니다.)

    에러코드와 같이 바로 보이는 코드가 아니지만, 나중에 접속한 컴퓨터의 브라우저에서 앞으로 어떻게 이 리디렉션을 해결할 것인지 결정합니다. 쿠키에 관여 할 수도 있습니다.

    301(영구) - 클라이언트에서 앞으로 항상 리디렉트된 주소로 접속할 것을 알려줌.(브라우저 쿠키에 관여)

    302(찾음) - 리디렉션이 진행되고 정상적으로 사이트로 이동됨을 알려줌.(나중에 변경될수 있음을 알려줌)

    307(임시) - 이번만 리디렉션으로 접속하는 것으로 알려줌. (쿠키 저장안함)


    아, 참고로 http://a.com 이라는 사이트를 http://b.com 이라는 사이트로 리디렉션 시킬때 b.com의 하위폴더로더 요청할 수 있습니다.


    만약, http://b.com/temp 라는 하위 주소가 있다면 http://a.com/temp를 입력하는 것만으로도 http://b.com/temp로 주소를 치고 들어가는 것과 같은 효과를 누립니다.

    단, 이렇게 사용하실려면 모든 요청을 대상 기준 대신 정확한 대상으로 리디렉션의 체크를 하시면 안됩니다.



    이제 마지막으로 정상적으로 동작하는지 확인하기 위해 웹사이트 찾아보기를 통해 리디렉션 주소가 아닌 원래 주소로 접속을 테스트해 봅시다.


    여기서 든 예는 

    원래 주소 - http://localhost:2341 

    리디렉션 할 주소 - http://www.naver.com


    웹 사이트 찾아보기로 http://localhost:2341로 접속하면 네이버로 정상 접근하는 것을 확인하였습니다.


    마지막으로 이 리디렉션 기능은 http 주소를 https 로 변환할 때 상당히 편합니다. 일반적으로 사용자들은 https 를 귀찮게 적지 않기 때문에 http로 접속될 주소를 자동으로 https로 변경해주는게 아주 큰 역을 하기도 합니다.


    사실 요즘에는 SSL이 활성화 되어 있어서 보안 프로토콜인 https로 자동으로 변환되게 하기 위해 이 리디렉션을 많이 사용합니다. 사이트에 SSL을 사용하실 분들은 반드시 이 리디렉션 기능을 이용하여 http로 접속하는 분들도 https로 접속할 수 있게끔 해주는 것이 좋습니다.




    Posted by Study For Us clamp2x

    • 2014.11.13 18:12

      비밀댓글입니다

      • Favicon of http://studyforus.tistory.com BlogIcon Study For Us clamp2x
        2014.11.18 01:42 신고

        댓글이 스팸으로 등록되어 있어서 휴지통을 보다가 이제야 발견하고 부랴부랴 답변 남겨 봅니다. (아마 http와 https 가 많아서 그런가 봅니다.)

        먼저 리디렉션을 사용하기 위해서 바인딩 설정을 생각해보면, http://121.00.00.3 과 https://121.00.00.3을 동시에 바인딩 설정을 하면 안됩니다. 이유는 해당 사이트로 접속하면 https://121.00.00.3으로 리디렉션을 시켜놓았는데 바인딩에 자기자신도 포함되어 있어서 다람쥐 챗바퀴 처럼 빙글빙글 돌게 됩니다.
        그래서 리디렉션 오류를 나타내는 경우가 있습니다.

        해결 방법은 하나의 사이트를 등록하고 바인딩을 http://121.00.00.3(사이트 A라 할게요.)으로 설정하시고 기존에 있던 사이트의 바인딩은 https://121.00.00.3(사이트 B라고 할게요.)으로만 설정합니다. 그리고 사이트 A에서 리디렉션 기능을 이용하여 사이트B의 접속 주소로 설정합니다.
        이때 사이트 B는 정상적으로 기존에 사용하던 홈페이지여야 합니다.

        어떤 오류가 발생하였는지 몰라서 리디렉션 순환오류 일까봐 뒤늦게 작성해 봅니다.
        혹시라도 어떤 오류를 나타냈는지 알려주셨으면 좋겠습니다.^^


    • 2015.03.28 18:35

      비밀댓글입니다


    • 2015.03.28 18:35

      비밀댓글입니다

      • Favicon of http://studyforus.tistory.com BlogIcon Study For Us clamp2x
        2015.03.28 18:55 신고

        질문주신 내용을 보면 내부에서 사용하는 사설 IP 주소를 외부에서 접속한게 아닐까 합니다.
        내부에서는 접속되었다면 공인 IP를 사용하지 않는 이상은 외부에서 접속하기가 힘듭니다.
        http://studyforus.tistory.com/27 이글 한번 읽어보시고, 만약, 관련된 설정이 모두 되었는데도 같은 문제가 일어난다면 자세한 현상과 설정을 동시에 알려주세요. alliis.com에 질문을 등록해주면 상세하게 설명가능합니다.^^

    • 성광호
      2016.07.19 15:03 신고

      올려주신 글들 통해서 도움을 많이 받고 있습니다. 감사합니다.
      그런데 IIS 7.5에서 Http Redirection을 하려고 하면 여러 사이트에 각각
      적용이 되질 않고 하나의 Redirection이 여러 사이트에 동시에 적용되네요.
      무엇이 문제일까요?

      • Favicon of http://studyforus.tistory.com BlogIcon Study For Us clamp2x
        2016.07.19 18:42 신고

        혹시 리디렉션을 서버단에서 설정하신것은 아닌지?

        http://studyforus.tistory.com/265 이 글이 사이트별로 설정하는 것과 서버 전체에서 설정하는 것에 대한 내용을 담고 있습니다.
        한번 참고해보세요.^^

      • Favicon of http://s760531.tistory.com BlogIcon 믿음직한
        2016.07.20 11:55 신고

        물론 사이트별로 설정한 상태입니다.
        서버단에선 리디렉션 해제한 상태이구요.

      • Favicon of http://studyforus.tistory.com BlogIcon Study For Us clamp2x
        2016.07.20 22:21 신고

        혹시 설정 내용도 알 수 있을까요?


    • 2017.01.12 21:19

      비밀댓글입니다

      • Favicon of http://studyforus.tistory.com BlogIcon Study For Us clamp2x
        2017.01.12 21:40 신고

        위 링크가 정확히 무엇을 하는 링크인지 잘 모르겠습니다.
        그냥 얼핏보기에 단순히 새 웹주소를 만들어 리디렉팅 시키는것 같습니다. (흔히 말하는 웹 포워딩 기능)

        일단 이런 기능들을 만들려면 리디렉션 원리보다는 자동으로 임의주소를 생성하는 코딩 기술과 그것을 원래 주소로 연결하는 코딩능력만 있으면 될것 같습니다. ^^

티스토리 툴바