Apache HTTP Server Version 2.4

Apache > HTTP Server > Documentation > Version 2.4 > 모듈

# 아파치 모듈 mod_imagemap

이 문서는 최신판 번역이 아닙니다. 최근에 변경된 내용은 영어 문서를 참고하세요.

설명: | 서버측 이미지맵(imagemap) 처리
상태: | Base
모듈명: | imagemap_module
소스파일: | mod_imagemap.c

### 요약

이 모듈은 `imagemap` CGI 프로그램을 대신하여 `.map` 파일을 처리한다. 이 모듈은 (`AddHandler`나 `SetHandler`를 사용하여) `imap-file` 핸들러를 사용하도록 설정한 디렉토리나 문서를 처리한다.

아래 지시어는 `.map`으로 끝나는 파일을 이미지맵 파일로 설정한다.

`AddHandler imap-file map`

아직도 아래와 같은 설정을 지원한다.

`AddType application/x-httpd-imap map`

그러나 우리는 점차 "서버에게 특별한 의미가 있는 MIME type"을 제거하려고 하기때문에 이 방법은 없어질 것이다.

### 주제

- 새로운 기능
- 이미지맵 파일
- 맵파일 예제
- 맵파일 사용하기

### 지시어들

### Bugfix checklist

- httpd changelog
- Known issues
- Report a bug

## 새로운 기능

이미지맵 모듈에는 이전 이미지맵 프로그램에는 없는 몇가지 새로운 기능이 있다.

- Referer: 정보에 상대적인 URL 참조.
- 새로운 `base` 맵지시어를 사용하여 기본 `<base>` 지정.
- `imagemap.conf` 파일 필요없음.
- 점(point) 참조.
- 이미지맵 메뉴 조정 가능.

## 이미지맵 파일

이미지맵 파일은 아래와 같은 형식으로 작성한다.

`directive value [x,y ...]
directive value "Menu text" [x,y ...]
directive value x,y ... "Menu text"`

directive는 `base`, `default`, `poly`, `circle`, `rect`, `point` 중 하나다. value에는 절대 URL이나 상대 URL 혹은 아래에서 열거할 특수값을 사용한다. 좌표는 공백으로 구분한 `x,y` 쌍이다. 따옴표로 묶은 문구는 이미지맵 메뉴를 만들때 링크 제목으로 사용한다. '#'로 시작하는 줄은 주석이다.

### 이미지맵 파일 지시어

이미지맵 파일에서 6가지 지시어를 사용할 수 있다. 지시어는 특별한 순서없이 사용할 수 있지만, 이미지맵 파일에 나온 순서대로 처리한다.

`base` 지시어

  `<base href="value">` 기능을 한다. 맵파일에서 나오는 URL은 절대 URL이 아니라면 이 값에 상대 URL로 취급한다. `base` 지시어는 `.htaccess` 파일이나 서버설정파일에서 설정한 `ImapBase` 값을 무시한다. `ImapBase` 설정지시어가 없다면 기본 `base` 값은 `http://server_name/`이다.

  `base_uri`는 `base`와 같다. URL에서 마지막 슬래쉬를 잊지마라.

`default` 지시어
  해당 좌표가 `poly`, `circle`, `rect` 지시어에 해당하지 않고 `point` 지시어를 사용하지 않은 경우 행동을 지정한다. `ImapDefault` 설정이 없다면 기본값은 `204 No Content` 상태코드를 반환하는 `nocontent`이다. 이 경우 클라이언트는 동일한 페이지를 보여줘야 한다.
`poly` 지시어
  점을 세개에서 백개까지 지정할 수 있다. 사용자가 이 점들로 이루어진 다각형 안의 좌표를 선택한 경우에 사용한다.
`circle`
  원의 중심과 원위의 한 점의 좌표를 받는다. 사용자가 원 안의 좌표를 선택한 경우에 사용한다.
`rect` 지시어
  사각형의 두 모서리 점의 좌표를 받는다. 사각형 안의 좌표를 선택한 경우에 사용한다.
`point` 지시어
  한 점의 좌표를 받는다. 다른 지시어들을 만족하지 않은 경우 사용자가 선택한 좌표에 가장 가까운 point 지시어를 사용한다. `point` 지시어를 사용하고 유효한 좌표를 선택한 경우 `default`는 절대로 사용되지 않는다.

### 지시어에 사용할 수 있는 값들

지시어에 아래 value를 사용할 수 있다.

URL

  상대 URL이나 절대 URL을 사용할 수 있다. 상대 URL에 '..'을 사용할 수 있으며, `base` 값을 기준으로 찾는다.

  `base`를 설정할때는 현재 base값은 무시한다. 그러나, `base mailto:` 문은 사용할 수 있다.

`map`
  이미지맵 파일 자체 URL과 같다. 좌표가 없고 `ImapMenu`가 `none`이 아니라면 메뉴를 만든다.
`menu`
  `map`과 같다.
`referer`
  참조(링크를 따라오기 전) 문서 URL과 같다. `Referer:` 헤더가 없다면 기본값은 `http://servername/`이다.
`nocontent`
  클라이언트에게 동일한 페이지를 그대로 보여주라는 `204 No Content` 상태코드를 보낸다. `base`를 제외한 모든 지시어에서 사용할 수 있다.
`error`
  실패를 나타내는 `500 Server Error`를 보낸다. `base`를 제외한 모든 지시어에서 사용할 수 있지만, `default` 외에는 사용할 일이 없다.

### 좌표

`0,0 200,200`
  좌표는 쉼표로 구분한 x와 y 값이다. 좌표들은 서로 공백으로 구분한다. 이미지맵을 다루는 방식상 Lynx의 편의를 위해 사용자가 `0,0` 좌표를 선택하였다면 좌표를 선택하지 않은 것처럼 동작한다.

### 따옴표로 묶은 문구

`"Menu Text"`

  value 뒤나 좌표 뒤에 쌍따옴표로 묶은 문구를 적을 수도 있다. 이 문자열은 메뉴를 만들때 링크 제목으로 사용한다.

  `<a href="http://foo.com/">Menu text</a>`

  따옴표로 묶은 문구가 없다면 다음과 같이 링크를 링크 제목으로 사용한다.

  `<a href="http://foo.com/">http://foo.com</a>`

  문구에 쌍따옴표를 쓰려면 `&quot;`와 같이 적어야 한다.

## 맵파일 예제

`#'formatted'나 'semiformatted' 메뉴는 주석을 출력한다.
#그리고 주석에 html 태그를 쓸 수 있다. <hr>
base referer
poly map "메뉴를 보여주세요." 0,0 0,10 10,10 10,0
rect .. 0,0 77,27 "참조 문서가 있는 디렉토리"
circle http://www.inetnebr.com/lincoln/feedback/ 195,0 305,27
rect another_file "참조 문서와 같은 디렉토리에 있는" 306,0 419,27
point http://www.zyzzyva.com/ 100,100
point http://www.tripod.com/ 200,200
rect mailto:nate@tripod.com 100,150 200,0 "버그?"
`

## 맵파일 사용하기

### HTML 에제

`<a href="/maps/imagemap1.map">
<img ismap src="/images/imagemap1.gif">
</a>`

### XHTML 예제

`<a href="/maps/imagemap1.map">
<img ismap="ismap" src="/images/imagemap1.gif" />
</a>`

## ImapBase 지시어

설명: | 이미지맵 파일에서 `base` 기본값
문법: | `ImapBase map|referer|URL`
기본값: | `ImapBase http://servername/`
사용장소: | 주서버설정, 가상호스트, directory, .htaccess
Override 옵션: | Indexes
상태: | Base
모듈: | mod_imagemap

`ImapBase` 지시어는 이미지맵 파일에서 사용할 `base` 기본값을 설정한다. 이미지맵 파일 안에서 `base` 지시어를 사용하면 여기서 설정한 값은 무시한다. 둘 모두 없다면, `base` 기본값은 `http://servername/`이다.

### 참고

- `UseCanonicalName`

## ImapDefault 지시어

설명: | 이미지맵에 어느 영역에도 해당하지 않는 좌표를 준 경우 기본 행동
문법: | `ImapDefault error|nocontent|map|referer|URL`
기본값: | `ImapDefault nocontent`
사용장소: | 주서버설정, 가상호스트, directory, .htaccess
Override 옵션: | Indexes
상태: | Base
모듈: | mod_imagemap

`ImapDefault` 지시어는 이미지맵 파일에서 사용할 `default` 기본값을 설정한다. 이미지맵 파일 안에서 `default` 지시어를 사용하면 여기서 설정한 값은 무시한다. 둘 모두 없다면, `default` 행동은 클라이언트에게 `204 No Content`를 보내는 `nocontent`이다. 이 경우 클라이언트는 원래 페이지를 그대로 보여줘야 한다.

## ImapMenu 지시어

설명: | 좌표없이 이미지맵 요청시 취할 행동
문법: | `ImapMenu none|formatted|semiformatted|unformatted`
사용장소: | 주서버설정, 가상호스트, directory, .htaccess
Override 옵션: | Indexes
상태: | Base
모듈: | mod_imagemap

`ImapMenu` 지시어는 이미지맵 파일에 유효한 좌표를 주지 않은 경우 취할 행동을 결정한다.

`none`
  ImapMenu가 `none`이면, 메뉴를 만들지않고 `default` 행동을 취한다.
`formatted`
  `formatted` 메뉴는 가장 간단한 메뉴다. 이미지맵 파일의 주석은 무시한다. 가장 큰 표제와 수직선을 출력하고, 링크를 한줄씩 출력한다. 메뉴는 일관되고 평이하며, 디렉토리 목록과 흡사하다.
`semiformatted`
  `semiformatted` 메뉴는 이미지맵 파일에 나오는 주석을 출력한다. 빈줄은 HTML 행바꿈으로 변환한다. 표제나 수직선을 그리지 않지만, 나머지는 `formatted` 메뉴와 같다.
`unformatted`
  주석은 출력하고, 빈줄은 무시한다. 이미지맵 파일에 있는 내용만 출력한다. 이미지맵 파일의 주석에 필요한 모든 행바꿈과 표제를 적어야 한다. 메뉴의 외관을 가장 자유자제로 꾸밀 수 있지만, 이미지맵 파일을 사실상 일반 문자파일이 아닌 HTML로 봐야 한다.