회원가입 | 고객센터 |
DESIGNONEX
dxcms.kr
DX마켓
Service
PR리그
Q&A
지식공유
공지사항
통계
로그인 회원가입
고객센터

DXCMS IIS 환경 설정 패키지 (URL Rewrite / No Rewrite / 권한 설정)

D DX
2026.06.11 03:02(수정됨) 4 0 1

# DXCMS IIS 환경 설정 가이드

---

## 포함 파일 구성

| 파일 | 역할 |
|---|---|
| `web.config` | IIS URL 라우팅 및 보안 규칙 (URL Rewrite 모듈 필요) |
| `web.config.no-rewrite` | URL Rewrite 모듈 없는 환경용 대체 설정 |
| `fix_permissions.bat` | IIS 폴더 권한 자동 설정 스크립트 |
---

## 1. 빠른 시작

### 순서

```
1. fix_permissions.bat → 관리자로 실행
2. web.config → 루트에 배치
3. IIS 재시작 → iisreset /restart
```
---

## 2. fix_permissions.bat

IIS에서 PHP가 파일을 읽고 쓰려면 `IIS_IUSRS` 계정에 해당 폴더 권한이 있어야 합니다. 이 스크립트가 자동으로 처리합니다.


### 실행 방법

파일을 **우클릭 → 관리자로 실행** 합니다. 일반 더블클릭으로는 권한 부족으로 실패합니다.

### 처리 내용

아래 폴더를 자동 생성하고 `IIS_IUSRS`, `IUSR` 계정에 수정(M) 권한을 부여합니다.
```
data\sessions   ← PHP 세션 파일 저장
data\uploads    ← 이미지 등 업로드 파일
data\cache      ← CMS 캐시 파일
data\logs       ← 에러 및 접근 로그
```

### 주의사항

- 반드시 CMS 루트 폴더에 bat 파일을 두고 실행해야 경로가 올바르게 잡힙니다.
- 실행 후 `iisreset /restart` 명령으로 IIS를 재시작하세요.
---


## 3. web.config

CMS의 핵심 라우팅 설정 파일입니다. Apache의 `.htaccess`와 동일한 역할을 합니다.

### URL Rewrite 모듈 필요

이 파일은 **IIS URL Rewrite 2.x 모듈**이 설치되어 있어야 합니다.
> 다운로드: https://www.iis.net/downloads/microsoft/url-rewrite
모듈이 없는데 이 파일을 그대로 두면 **HTTP 500.19 에러**가 발생합니다. 이 경우 아래 `web.config.no-rewrite` 를 사용하세요.

### 라우팅 규칙 설명

규칙은 위에서 아래 순서로 적용됩니다. 먼저 매칭된 규칙에서 처리가 멈춥니다(`stopProcessing="true"`).
**① 업로드 파일 허용**
```
data/uploads/ 경로는 이미지 서빙을 허용합니다.
단, .php 파일은 이 경로에서도 절대 실행되지 않습니다.
```
**② 민감한 폴더 직접 접근 차단**
```
data/     → 403 Forbidden
core/     → 403 Forbidden
```
세션, 캐시, 로그, 소스 코드에 외부에서 직접 접근할 수 없습니다.
**③ 정적 자원 허용**
```
install/          → 설치 파일
assets/           → JS, CSS 등 공통 자산
themes/           → 테마 CSS, JS, 이미지
plugins/*.css|js  → 플러그인 정적 파일
```
**④ 실제 파일은 그대로 서빙**
```
물리적으로 존재하는 파일(이미지 등)은 PHP를 거치지 않고 직접 응답합니다.
```
**⑤ 나머지 모든 요청 → index.php 로 전달**
```
/board/notice     → index.php 가 처리
/mall/products    → index.php 가 처리
/api/comment      → index.php 가 처리
```
CMS의 라우터(DxRouter)가 URL을 분석해서 해당 컨트롤러로 연결합니다.

### 보안 헤더

PHP 레벨(Secure.php)과 별개로 IIS 레벨에서도 기본 보안 헤더를 추가합니다.
```
X-Frame-Options: SAMEORIGIN          ← 클릭재킹 방지
X-Content-Type-Options: nosniff      ← MIME 타입 스니핑 방지
X-XSS-Protection: 1; mode=block     ← XSS 필터 활성화
Referrer-Policy: strict-origin-...  ← 리퍼러 정보 제한
X-Powered-By: (제거)                 ← PHP 버전 정보 노출 방지
```
---

## 4. web.config.no-rewrite

URL Rewrite 모듈이 없는 환경(공유호스팅 IIS 등)에서 사용합니다.

### 사용 방법

```
기존 web.config 파일명 변경 또는 삭제
web.config.no-rewrite 파일을 web.config 로 복사
```

### 동작 방식

URL Rewrite 없이도 CMS가 동작하도록 `?_url=` 쿼리스트링 방식으로 라우팅됩니다.
```

# Rewrite 있을 때

https://site.com/board/notice
# Rewrite 없을 때 (자동 처리, 사용자에게는 동일하게 보임)
https://site.com/index.php?_url=/board/notice
```
SEO 관점에서 URL Rewrite 사용을 권장하지만, 기능 동작에는 차이가 없습니다.
---

## 5. 자주 묻는 문제

**Q. 설치 후 모든 페이지에서 500 에러가 납니다.**
URL Rewrite 모듈이 없는 환경에서 `web.config`의 `<rewrite>` 블록이 로드되면 발생합니다. `web.config.no-rewrite`로 교체하거나, URL Rewrite 모듈을 설치하세요.

**Q. 이미지 업로드가 안 됩니다.**
`fix_permissions.bat`을 관리자 권한으로 실행했는지 확인하세요. 실행 후 반드시 `iisreset /restart`로 IIS를 재시작해야 적용됩니다.

**Q. data/ 폴더 파일이 브라우저에서 열립니다.**
`web.config`의 `DX Block data` 규칙이 동작하지 않는 상태입니다. URL Rewrite 모듈 설치 여부를 확인하세요.

**Q. PHP 세션이 유지되지 않습니다.**
`data\sessions` 폴더에 `IIS_IUSRS` 쓰기 권한이 없는 경우입니다. `fix_permissions.bat`을 다시 실행하세요.
---

## 6. 환경별 권장 구성

| 환경 | web.config | URL Rewrite |
|---|---|---|
| 전용서버 / VPS (IIS) | `web.config` | 설치 필요 |
| 공유호스팅 IIS | `web.config.no-rewrite` | 불필요 |
| Apache / Nginx | `.htaccess` 또는 `nginx.conf` 사용 | 해당 없음 |
 
첨부파일 1개 회원전용

댓글1

D
DX 2026.06.11 03:04

본 파일들은 DXCMS 개발 과정에서 IIS 환경 지원을 위해 제작된 설정 파일입니다.
Windows Server + IIS 환경에서 발생하는 URL Rewrite 오류, 권한 오류 및 접근 제한 문제를 해결하는 데 도움이 될 수 있습니다.
IIS 환경에서 DXCMS를 운영하시는 분들은 URL Rewrite 모듈 설치 여부를 먼저 확인해 주시기 바랍니다.

로그인 후 댓글을 작성할 수 있습니다.
34
전체 회원
894
전체 게시글
1,729
전체 댓글
172
오늘 방문
40,376
전체 방문
0
현재 접속
인기글 7일 이내
최신글
최신댓글
내 플레이리스트
플레이리스트가 비어있습니다
스튜디오 게시판에서
플레이리스트에 담기 버튼을
눌러보세요
목록
목록