mod_imap - Apache HTTP Server

Apache Server 2.0

<-

아파치 모듈 mod_imap

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

요약

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

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

AddHandler imap-file map

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

AddType application/x-httpd-imap map

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

top

새로운 기능

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

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

이미지맵 파일

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

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

좌표

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

따옴표로 묶은 문구

"Menu Text"

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

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

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

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

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

top

맵파일 예제

#'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:[email protected] 100,150 200,0 "버그?"

top

맵파일 사용하기

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>

top

ImapBase 지시어

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

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

참고

top

ImapDefault 지시어

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

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

top

ImapMenu 지시어

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

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

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