Spec-Zone.ru › Apache HTTP Server

Модуль 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>

Чтобы использовать в этом тексте двойные кавычки, их нужно записать как &quot;.

Пример файла карты

#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/.

См. также

  • UseCanonicalName

Директива 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API