Модуль Apache mod_imagemap
| Описание: | Обработка изображений-карты сайта на стороне сервера |
|---|---|
| Статус: | Базовый |
| Идентификатор модуля: | imagemap_module |
| Файл исходного кода: | mod_imagemap.c |
Резюме
Этот модуль обрабатывает файлы .map, тем самым заменяя функциональность программы CGI imagemap. Любой каталог или тип документа, настроенный для использования обработчика imap-file (используя AddHandler или SetHandler), будет обрабатываться этим модулем.
Следующая директива активирует файлы, оканчивающиеся на .map, как файлы изображений-карт сайта:
AddHandler imap-file map
Обратите внимание, что поддерживается следующее:
AddType application/x-httpd-imap map
Однако мы пытаемся отказаться от «магических MIME-типов», поэтому этот метод устаревает.
Новые возможности
Модуль imagemap добавляет некоторые новые возможности, которые были недоступны с ранее распространёнными программами imagemap.
- Ссылки URL, относительные к информации Referer:
- Назначение по умолчанию
<base>через новую директиву картыbase. - Больше нет необходимости в файле
imagemap.conf. - Ссылки на точки.
- Настраиваемое создание меню imagemap.
Файл imagemap
Строки в файлах imagemap могут иметь несколько форматов:
directive value [x,y ...] directive value "Menu text" [x,y ...] directive value x,y ... "Menu text"
Директива — одна из base, default, poly, circle, rect, или point. Значение — абсолютный или относительный URL или одно из специальных значений, перечисленных ниже. Координаты — пары x,y значений, разделённые пробелами. Цитируемый текст используется в качестве текста ссылки, если генерируется меню imagemap. Строки, начинающиеся с '#', являются комментариями.
Директивы файла imagemap
В файле imagemap разрешено шесть директив. Директивы могут идти в любом порядке, но обрабатываются в том порядке, в котором они встречаются в файле imagemap.
-
baseДиректива -
Оказывает такое же действие, как и
<base href="value">. Неабсолютные URL-адреса файла карты берутся относительно этого значения. ДирективаbaseпереопределяетImapBase, установленную в файле.htaccessили в конфигурационных файлах сервера. В отсутствие конфигурационной директивыImapBase, значениеbaseпо умолчанию равноhttp://server_name/.base_uriявляется синонимомbase. Обратите внимание, что конечный слэш в URL-адресе имеет значение. -
defaultДиректива - Действие, выполняемое, если заданные координаты не соответствуют ни одной из директив
poly,circleилиrect, и нет директивpoint. По умолчанию значение равноnocontentв отсутствие конфигурационного параметраImapDefault, что приводит к возврату кода состояния204 No Content. Клиент должен сохранить отображаемую страницу. -
polyДиректива - Принимает от трёх до ста точек и выполняется, если выбранные пользователем координаты попадают в многоугольник, заданный этими точками.
circle- Принимает центральные координаты окружности и точку на окружности. Выполняется, если выбранная пользователем точка находится внутри окружности.
-
rectДиректива - Принимает координаты двух противоположных углов прямоугольника. Выполняется, если выбранная точка находится внутри этого прямоугольника.
-
pointДиректива - Принимает одну точку. Директива точки, наиболее близкая к выбранной пользователем точке, выполняется, если никакие другие директивы не удовлетворены. Обратите внимание, что
defaultне будет выполнена, если присутствует директиваpointи заданы корректные координаты.
Значения
Значения для каждой из директив могут быть любыми из следующих:
- URL-адрес
-
URL-адрес может быть относительным или абсолютным. Относительные URL-адреса могут содержать синтаксис «..» и будут разрешаться относительно значения
base.baseсам по себе не будет разрешён в соответствии с текущим значением. Заявлениеbase mailto:будет работать правильно. map- Эквивалентно URL-адресу самого файла imagemap. С ним не отправляются координаты, поэтому будет сгенерировано меню, если
ImapMenuне установлено в значениеnone. menu- Синонимично
map. referer- Эквивалентно URL-адресу документа-предшественника. По умолчанию равно
http://servername/, если заголовокReferer:не присутствовал. nocontent- Отправляет код состояния
204 No Content, сообщая клиенту о сохранении отображаемой страницы. Действительно для всех, кромеbase. error- Возвращает ошибку
500 Server Error. Действительно для всех, кромеbase, но немного странно для чего-либо, кромеdefault.
Координаты
0,0 200,200- Координата состоит из значения x и значения y, разделённых запятой. Координаты разделены друг от друга пробелами. Для обеспечения совместимости с Lynx, если пользователь выбирает координату
0,0, это будет как если бы никакая координата не была выбрана.
Цитируемый текст
"Menu Text"-
После значения или координат строка необязательно может содержать текст в двойных кавычках. Эта строка используется как текст ссылки, если генерируется меню:
<a href="http://example.com/">Menu text</a>
Если цитируемого текста нет, то имя ссылки будет использоваться как текст:
<a href="http://example.com/">http://example.com</a>
Если вам нужно использовать двойные кавычки внутри этого текста, вы должны записать их как
".
Пример файла карты
#Comments are printed in a 'formatted' or 'semiformatted' menu. #And can contain html tags. <hr> base referer poly map "Could I have a menu, please?" 0,0 0,10 10,10 10,0 rect .. 0,0 77,27 "the directory of the referer" circle http://www.inetnebr.example.com/lincoln/feedback/ 195,0 305,27 rect another_file "in same directory as referer" 306,0 419,27 point http://www.zyzzyva.example.com/ 100,100 point http://www.tripod.example.com/ 200,200 rect mailto:nate@tripod.example.com 100,150 200,0 "Bugs?"
Ссылка на ваш файл карты
Пример 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 для файлов imagemap |
|---|---|
| Синтаксис: | ImapBase map|referer|URL |
| Значение по умолчанию: | ImapBase http://servername/ |
| Контекст: | конфигурация сервера, виртуальный хост, каталог, .htaccess |
| Переопределение: | Индексы |
| Статус: | Базовый |
| Модуль: | mod_imagemap |
Директива ImapBase устанавливает значение по умолчанию base , используемое в файлах imagemap. Его значение переопределяется директивой base внутри файла imagemap. Если отсутствует, base по умолчанию равно http://servername/.
См. также
Директива ImapDefault
| Описание: | Действие по умолчанию, когда imagemap вызывается с координатами, которые не явно сопоставлены |
|---|---|
| Синтаксис: | ImapDefault error|nocontent|map|referer|URL |
| Значение по умолчанию: | ImapDefault nocontent |
| Контекст: | конфигурация сервера, виртуальный хост, каталог, .htaccess |
| Переопределение: | Индексы |
| Статус: | Базовый |
| Модуль: | mod_imagemap |
Директива ImapDefault устанавливает значение по умолчанию default для файлов imagemap. Его значение переопределяется директивой default внутри файла imagemap. Если отсутствует, действие default по умолчанию равно nocontent, что означает, что клиенту отправляется код состояния 204 No Content. В этом случае клиент должен продолжить отображение исходной страницы.
Директива ImapMenu
| Описание: | Действие, если при вызове imagemap не указаны координаты |
|---|---|
| Синтаксис: | ImapMenu none|formatted|semiformatted|unformatted |
| Значение по умолчанию: | ImapMenu formatted |
| Контекст: | конфигурация сервера, виртуальный хост, каталог, .htaccess |
| Переопределение: | Индексы |
| Статус: | Базовый |
| Модуль: | mod_imagemap |
Директива ImapMenu определяет действие, выполняемое, если файл imagemap вызывается без корректных координат.
none- Если ImapMenu равно
none, меню не генерируется, и выполняется действиеdefault. formatted- Меню
formatted— самое простое меню. Комментарии в файле imagemap игнорируются. Выводится заголовок первого уровня, затем горизонтальная линия, затем ссылки, каждая на отдельной строке. Меню имеет последовательный простой вид, близкий к виду списка каталогов. semiformatted- В меню
semiformattedкомментарии печатаются там, где они встречаются в файле imagemap. Пустые строки преобразуются в разрывы HTML. Не выводится заголовок или горизонтальная линия, но в остальном меню аналогично менюformatted. unformatted- Комментарии печатаются, пустые строки игнорируются. Ничего не выводится, если это не появляется в файле imagemap. Все разрывы и заголовки должны быть включены в виде комментариев в файле imagemap. Это даёт вам большую гибкость в управлении внешним видом меню, но требует, чтобы вы рассматривали ваши файлы карт как HTML, а не как текст.
© 2018 The Apache Software Foundation
Licensed under the Apache License, Version 2.0.
https://httpd.apache.org/docs/2.4/en/mod/mod_imagemap.html