Модуль 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-типов», поэтому этот метод считается устаревшим.
Новые возможности
Модуль карт изображений добавляет несколько новых возможностей, недоступных в ранее распространявшихся программах для работы с картами изображений.
- Ссылки URL относительно информации Referer.
- Назначение значения по умолчанию
<base>с помощью новой директивы картыbase. - Файл
imagemap.confне требуется. - Ссылки на точки.
- Настраиваемая генерация меню карт изображений.
Файл карты изображений
Строки в файлах карт изображений могут иметь один из нескольких форматов:
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, разделённые пробелами. Текст в кавычках используется в качестве текста ссылки, если создаётся меню карты изображений. Строки, начинающиеся с '#', являются комментариями.
Директивы файла карты изображений
В файле карты изображений допускаются шесть директив. Директивы могут располагаться в любом порядке, но обрабатываются в том порядке, в котором они встречаются в файле карты изображений.
-
Директива
base -
Действует так же, как
<base href="value">. Относительные URL файла карты отсчитываются от этого значения. ДирективаbaseпереопределяетImapBase, заданную в файле.htaccessили в файлах конфигурации сервера. Если директива конфигурацииImapBaseотсутствует, дляbaseпо умолчанию используетсяhttp://server_name/.base_uriявляется синонимомbase. Обратите внимание, что завершающая косая черта в URL имеет значение. -
Директива
default - Действие, выполняемое, если заданные координаты не соответствуют ни одной из директив
poly,circleилиrectи директивpointнет. Если настройка конфигурацииImapDefaultотсутствует, по умолчанию используетсяnocontent, в результате чего возвращается код состояния204 No Content. Клиенту следует оставить на экране ту же страницу. - Директива
poly - Принимает от трёх до ста точек и применяется, если выбранные пользователем координаты находятся внутри многоугольника, заданного этими точками.
circle- Принимает координаты центра окружности и точки на окружности. Применяется, если выбранная пользователем точка находится внутри окружности.
-
Директива
rect - Принимает координаты двух противоположных углов прямоугольника. Применяется, если выбранная точка находится внутри этого прямоугольника.
-
Директива
point - Принимает одну точку. Если другие директивы не подходят, применяется директива точки, ближайшей к точке, выбранной пользователем. Обратите внимание:
defaultне будет применена, если присутствует директиваpointи заданы допустимые координаты.
Значения
Значения каждой из директив могут быть следующими:
- URL
-
URL может быть относительным или абсолютным. Относительные URL могут содержать синтаксис '..' и разрешаются относительно значения
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"-
После значения или координат в строке может находиться текст в двойных кавычках. Эта строка используется в качестве текста ссылки, если создаётся меню:
<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 по умолчанию для файлов карт изображений |
|---|---|
| Синтаксис: | ImapBase map|referer|URL |
| Значение по умолчанию: | ImapBase http://servername/ |
| Контекст: | конфигурация сервера, виртуальный хост, каталог, .htaccess |
| Переопределение: | Indexes |
| Статус: | Базовый |
| Модуль: | mod_imagemap |
Директива ImapBase задаёт значение base по умолчанию, используемое в файлах карт изображений. Её значение переопределяется директивой base в файле карты изображений. Если она отсутствует, для base по умолчанию используется http://servername/.
См. также
Директива ImapDefault
| Описание: | Действие по умолчанию, если карта изображений вызвана с координатами, для которых явно не задано соответствие |
|---|---|
| Синтаксис: | ImapDefault error|nocontent|map|referer|URL |
| Значение по умолчанию: | ImapDefault nocontent |
| Контекст: | конфигурация сервера, виртуальный хост, каталог, .htaccess |
| Переопределение: | Indexes |
| Статус: | Базовый |
| Модуль: | mod_imagemap |
Директива ImapDefault задаёт действие default по умолчанию, используемое в файлах карт изображений. Её значение переопределяется директивой default в файле карты изображений. Если она отсутствует, действием default будет nocontent, то есть клиенту отправляется 204 No Content. В этом случае клиенту следует продолжить отображение исходной страницы.
Директива ImapMenu
| Описание: | Действие, выполняемое при вызове карты изображений без указания координат |
|---|---|
| Синтаксис: | ImapMenu none|formatted|semiformatted|unformatted |
| Значение по умолчанию: | ImapMenu formatted |
| Контекст: | конфигурация сервера, виртуальный хост, каталог, .htaccess |
| Переопределение: | Indexes |
| Статус: | Базовый |
| Модуль: | mod_imagemap |
Директива ImapMenu определяет действие, выполняемое при вызове файла карты изображений без допустимых координат.
none- Если для ImapMenu задано значение
none, меню не создаётся, а выполняется действиеdefault. formatted- Меню
formatted— это самое простое меню. Комментарии в файле карты изображений игнорируются. Выводится заголовок первого уровня, затем горизонтальная линия, а после неё — ссылки, каждая на отдельной строке. Меню имеет единый простой вид, напоминающий список каталогов. semiformatted- В меню
semiformattedкомментарии выводятся там, где они встречаются в файле карты изображений. Пустые строки преобразуются в разрывы строк HTML. Заголовок и горизонтальная линия не выводятся, в остальном меню совпадает с менюformatted. unformatted- Комментарии выводятся, пустые строки игнорируются. Выводится только то, что присутствует в файле карты изображений. Все разрывы строк и заголовки должны быть включены в файл карты изображений в виде комментариев. Это даёт наибольшую гибкость при оформлении меню, но требует рассматривать файлы карт как 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