mod_imagemap - Apache HTTP Server Version 2.2

Apache HTTP Server Version 2.2

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

#### Please note

This document refers to a legacy release (2.2) of Apache httpd. The active release (2.4) is documented here. If you have not already upgraded, please follow this link for more information.

You may follow this link to go to the current version of this document.

# 아파치 모듈 mod_imagemap

가능한 언어: en | ko

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

설명: | 서버측 이미지맵(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"을 제거하려고 하기때문에 이 방법은 없어질 것이다.

### 주제

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

### 지시어들

- Comments

## 새로운 기능

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

- 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로 봐야 한다.

가능한 언어: en | ko

## Comments

Notice:
This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our mailing lists.