<-
Apache > HTTP 服务器 > 文档 > 版本 2.4 > 模块

Apache 模块 mod_imagemap

可用语言:  en  |  fr  |  ko 

描述服务器端图像地图处理
状态基础
模块标识符imagemap_module
源文件mod_imagemap.c

概述

此模块处理.map文件,从而取代imagemap CGI 程序的功能。任何配置为使用处理程序imap-file(使用AddHandlerSetHandler)的目录或文档类型都将由此模块处理。

以下指令将激活以.map结尾的文件作为图像地图文件

AddHandler imap-file map

请注意,以下内容仍然受支持

AddType application/x-httpd-imap map

但是,我们正在尝试逐步淘汰“魔术 MIME 类型”,因此我们不推荐使用这种方法。

Support Apache!

主题

指令

Bugfix 检查清单

另请参阅

top

新功能

图像地图模块添加了一些以前分发的图像地图程序无法实现的新功能。

top

图像地图文件

图像地图文件中的行可以具有以下几种格式之一

指令 值 [x,y ...]
指令 值 "菜单文本" [x,y ...]
指令 值 x,y ... "菜单文本"

指令是basedefaultpolycirclerectpoint之一。值是绝对或相对 URL,或以下列出的特殊值之一。坐标是x,y对,用空格分隔。引用的文本用作链接的文本(如果生成了图像地图菜单)。以 '#' 开头的行是注释。

图像地图文件指令

图像地图文件中允许使用六个指令。这些指令可以按任何顺序出现,但会按它们在图像地图文件中出现的顺序进行处理。

base 指令

具有<base href="value"> 的效果。地图文件的非绝对 URL 相对于此值进行解析。base指令会覆盖.htaccess文件或服务器配置文件中设置的ImapBase。在没有ImapBase配置指令的情况下,base默认为http://server_name/

base_uribase同义。请注意,URL 上的尾部斜杠很重要。

default 指令
如果给定的坐标不符合任何polycirclerect指令,并且没有point指令,则执行此操作。在没有ImapDefault配置设置的情况下,默认为nocontent,导致返回204 No Content状态代码。客户端应保持显示相同的页面。
poly 指令
接受三到一百个点,如果用户选择的坐标落在这些点定义的多边形内,则会执行此指令。
circle
接受圆的中心坐标和圆上的一个点。如果用户选择的点在圆内,则会执行此指令。
rect 指令
接受矩形的两个相对角的坐标。如果选择的点在该矩形内,则会执行此指令。
point 指令
接受一个点。如果没有任何其他指令满足条件,则会执行最接近用户选择的点的点指令。请注意,如果存在point指令并且给出了有效坐标,则不会执行default

每个指令的值可以是以下任何一种

URL

URL 可以是相对 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
坐标由用逗号分隔的xy值组成。坐标彼此之间用空格分隔。为了适应 Lynx 处理图像地图的方式,如果用户选择了0,0坐标,则相当于没有选择任何坐标。

引用的文本

"菜单文本"

在值或坐标之后,该行可以选择包含双引号内的文本。此字符串用作链接的文本(如果生成了菜单)

<a href="http://example.com/">菜单文本</a>

如果不存在引用的文本,则将使用链接的名称作为文本

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

如果要在该文本中使用双引号,则必须将其写为&quot;

top

示例地图文件

#注释将以“格式化”或“半格式化”菜单打印。
#并且可以包含 html 标签。 <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:[email protected] 100,150 200,0 "Bugs?"

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/
上下文服务器配置、虚拟主机、目录、.htaccess
覆盖索引
状态基础
模块mod_imagemap

ImapBase指令设置图像地图文件中使用的默认base。它的值会被图像地图文件中的base指令覆盖。如果不存在,则base默认为http://servername/

另请参阅

top

ImapDefault 指令

描述使用未明确映射的坐标调用图像地图时的默认操作
语法ImapDefault error|nocontent|map|referer|URL
默认ImapDefault nocontent
上下文服务器配置、虚拟主机、目录、.htaccess
覆盖索引
状态基础
模块mod_imagemap

ImapDefault指令设置图像地图文件中使用的默认default。它的值会被图像地图文件中的default指令覆盖。如果不存在,则default操作为nocontent,这意味着会向客户端发送204 No Content。在这种情况下,客户端应继续显示原始页面。

top

ImapMenu 指令

描述在调用图像地图时未给出坐标时的操作
语法ImapMenu none|formatted|semiformatted|unformatted
默认ImapMenu formatted
上下文服务器配置、虚拟主机、目录、.htaccess
覆盖索引
状态基础
模块mod_imagemap

ImapMenu指令确定在没有有效坐标的情况下调用图像地图文件时采取的操作。

none
如果 ImapMenu 为none,则不会生成菜单,并且会执行default操作。
formatted
formatted菜单是最简单的菜单。图像地图文件中的注释将被忽略。会打印一级标题,然后是水平线,然后是每行一个链接。该菜单具有统一的简洁外观,类似于目录列表。
semiformatted
semiformatted菜单中,注释将在它们在图像地图文件中出现的位置打印。空行将转换为 HTML 换行符。不会打印标题或水平线,但其他方面与formatted菜单相同。
unformatted
注释将被打印,空行将被忽略。不会打印图像地图文件中未出现的内容。所有换行符和标题都必须作为注释包含在图像地图文件中。这为您提供了最大的菜单外观灵活性,但要求您将地图文件视为 HTML 而不是纯文本。

可用语言:  en  |  fr  |  ko 

top

评论

注意
这不是问答部分。此处发布的评论应针对改进文档或服务器的建议,如果这些建议已实施或被认为无效/偏离主题,则可能会被我们的版主删除。有关如何管理 Apache HTTP 服务器的问题应发送到我们的 IRC 频道 #httpd(在 Libera.chat 上)或发送到我们的邮件列表