IT관련

IIS의 상대경로 설정 방법

파란하늘999 2025. 11. 10. 14:16

웹 개발을 하다 보면 IIS(Internet Information Services)에서 상대경로를 제대로 설정하지 않으면 파일 포함이나 링크가 깨지는 문제가 자주 발생하죠. 특히 Classic ASP나 PHP 같은 스크립트 언어에서 상위 디렉토리를 참조할 때 '../' 같은 상대경로가 작동하지 않는 경우가 많아요. 이 포스트에서는 IIS에서 상대경로(특히 부모 경로)를 설정하는 방법을 단계별로 정리해 볼게요. IIS 7 이상 버전을 기준으로 설명하니 참고하세요!

왜 상대경로 설정이 필요한가?

IIS는 보안을 위해 기본적으로 부모 디렉토리 접근을 제한합니다. 이 때문에 웹 애플리케이션 내에서 상위 폴더의 파일을 상대경로로 불러올 때 오류가 발생할 수 있어요. 이를 해결하려면 "부모 경로 사용(Enable Parent Paths)" 옵션을 활성화해야 합니다. 이 설정은 Classic ASP나 ASP.NET 프로젝트에서 특히 유용하죠.

주의: 이 옵션은 보안 취약점을 유발할 수 있으니, 프로덕션 환경에서는 신중히 사용하세요. 가능하다면 절대경로나 가상 디렉토리를 활용하는 게 더 안전합니다.

IIS에서 상대경로 설정 단계

IIS 관리자를 통해 간단히 설정할 수 있어요. 아래 단계를 따라 해보세요.

1. IIS 관리자 열기

  • Windows 키 + R을 눌러 inetmgr를 입력하고 Enter.
  • 또는 제어판 > 시스템 및 보안 > 관리 도구 > 인터넷 정보 서비스(IIS) 관리자로 이동합니다.

2. 사이트 선택

  • 왼쪽 트리 뷰에서 설정할 웹사이트나 가상 디렉토리를 선택하세요. (예: Default Web Site 또는 사용자 사이트)

3. 홈 디렉토리 구성 열기

  • 오른쪽 작업 패널에서 고급 설정을 클릭하거나, 사이트를 더블클릭한 후 홈 디렉토리 탭으로 이동.
  • 구성 버튼을 클릭합니다. (IIS 6 이하 버전 기준; IIS 7+에서는 핸들러 매핑이나 애플리케이션 설정에서 유사하게 접근)

4. 부모 경로 사용 활성화

  • 옵션 탭으로 이동.
  • 부모 경로 사용(Enable parent paths) 체크박스를 체크합니다.
  • 확인을 클릭해 저장.

 

5. 변경 사항 적용 및 테스트

  • IIS 관리자를 닫고 웹 브라우저에서 사이트를 새로고침.
  • ASP 코드에서 <!--#include file="../config.asp"-->처럼 상대경로를 테스트해 보세요. 오류가 사라지면 성공!

만약 IIS 7 이상이라면, web.config 파일을 직접 편집할 수도 있어요. 루트 디렉토리의 web.config에 아래 코드를 추가하세요:

 
<configuration>
  <system.web>
    <httpRuntime enableParentPaths="true" />
  </system.web>
</configuration>

이 설정으로 ASP.NET에서도 부모 경로를 사용할 수 있습니다.

추가 팁: 절대경로 vs 상대경로

  • 상대경로: ./images/photo.jpg – 현재 파일 기준, 이동 시 유연함.
  • 절대경로: /images/photo.jpg – 루트 기준, 서버 변경 시 문제될 수 있음. IIS에서 가상 디렉토리를 만들면 절대경로처럼 동작하게 할 수 있어요. 사이트 > 추가 > 가상 디렉토리로 설정하세요.

 

유형 장점 단점 사용 예
상대경로 이식성 좋음 부모 경로 제한 시 오류 ../css/style.css
절대경로 명확함 서버 이동 시 수정 필요 /app/images/logo.png

문제 발생 시 트러블슈팅

  • 오류 800a01b6: 부모 경로가 비활성화된 상태. 위 설정 확인.
  • PHP나 다른 언어: php.ini에서 include_path를 상대적으로 조정.
  • 보안 강화: 설정 후 IIS 로그를 확인하며 취약점 스캔하세요.

이 방법으로 대부분의 상대경로 이슈가 해결될 거예요!

반응형