이 글은 Windows 10의 IIS에서 테스트 되었습니다. URL 재작성을 사용하기 위해서는 웹 플랫폼 인스톨러를 통해서 URL 재작성 기능을 설치해야 합니다.
웹 플랫폼 인스톨러가 설치되어 일지 않다면 "Web Platform Installer" 에서 다운로드하여 설치합니다.
웹 플랫폼 인스톨러에서 URL 재작성 기능을 검색하여 설치합니다.
IIS 관리자에서 웹사이트를 선택하고 가운데 화면에서 "URL 재작성"을 더블 클릭합니다.
오른쪽 화면에서 "규칙 추가..."를 클릭합니다.
인바운드 규칙의 "빈 규칙" 을 선택하고 "확인" 버튼을 누릅니다.(빈 규칙을 더블 클릭해도 됩니다.)
인바운드 규칙 편집 상단의 이름과 URL 검색에 다음과 같이 입력합니다.
* 이름 : Redirect to HTTPS
* URL 검색
- 요청한 URL(R) : 패턴과 일치
- 사용(S) : 정규식
- 패턴(T) : (.*)
- 대/소문자 무시(I) : 체크
※ 참고 정규식 (.*) 는 프로토콜, 호스트명, 포트를 제외한 모든 형식의 URL을 말합니다. 예로 http://offbyone.tistory.com:8080/product/index.html 이 요청 되었다면 패턴 매치에 사용되는 부분은 product/index.html 입니다. |
조건 영역에서 "논리 그룹화(G)"는 "모두 일치" 를 선택하고 "추가..." 버튼을 누릅니다.
조건 추가 창에서 다음과 같이 입력합니다.
- 조건 입력(C): {HTTPS}
- 입력 문자열이 다음과 같은 경우 확인: 패턴과 일치
- 패턴(T): ^OFF$
- 대/소문자 무시 : 체크
※ 참고 이 부분은 처리할 요청을 선택하는 추가 조건을 지정합니다. IIS 서버 변수 {HTTPS}는 https 요청이면 ON, http 요청이면 OFF를 반환합니다. 여기서는 OFF인 경우 즉, http 요청인 경우만 처리하는 것입니다. 이 조건이 없으면 무한루프에 빠지게 됩니다. |
작업 영역에서 다음과 같이 입력합니다.
- 작업 유형(Y): 리디렉션
- URL 리디릭션: https://{HTTP_HOST}/{R:1}
- 쿼리 문자열 추가(Q): 체크
- 리디렉션 유형: 기타 참조(303)
※ 참고 리다이렉트될 URL을 만드는 부분입니다. IIS 서버변수 {HTTP_HOST}는 도메인명까지만 나옵니다. 포트를 변경하고 싶다면 https://{HTTP_HOST}:8443/{R:1} 처럼 처리합니다. {R:1}은 정규식에서 그룹에 대한 역참조 입니다. 그룹은 소괄호로 둘러싼 부분입니다. 정규식 (.*) 는 하나의 그룹을 가집니다. 여기에서 {R:0}는 전체 입력 문자열을 나타내고, {R:1} 은 첫번째 그룹입니다. 그러므로 정규식 (.*) 에서 {R:0}와 {R:1}은 같은 값을 가지게 됩니다. |
IIS관리자 오른쪽 화면에서 "적용"을 누르고 "규칙으로 돌아가기"를 누릅니다.
URL 재작성 룰이 추가된것을 확인할 수 있습니다.
이제 http:// 요청을 해보면 https:// 로 리다이렉트 되는 것을 확인할 수 있을 것입니다.
'프로그래밍 > 운영체제, 서버' 카테고리의 다른 글
Windows 10 작업 스케줄러로 PHP 스크립트 주기적으로 실행하기 (0) | 2018.09.05 |
---|---|
IIS 웹서버에서 기본 페이지와 오류 페이지 설정하기 (2) | 2018.08.28 |
CentOS 7에서 mod_jk사용하여 Apache 2.4 와 Tomcat 연동하기 (8) | 2018.08.23 |
Windows 10에 IIS, PHP, Oracle 연동 설치하기 (7) | 2018.08.16 |
IIS 요청 필터링(특정 파일 또는 폴더에 접근하지 못하게 설정하기) (0) | 2018.08.14 |