On this page
Apache 模块 mod_imagemap
Description: | 服务器端图像 Map 处理 |
---|---|
Status: | Base |
Module Identifier: | imagemap_module |
Source File: | mod_imagemap.c |
Summary
该模块处理.map
文件,从而替代imagemap
CGI 程序的功能。此模块将处理配置为使用处理程序imap-file
(使用AddHandler或SetHandler)的任何目录或文档类型。
以下指令将激活以.map
结尾的文件作为图像 Map 文件:
AddHandler imap-file map
请注意,仍然支持以下内容:
AddType application/x-httpd-imap map
但是,我们正在尝试逐步淘汰“魔术 MIME 类型”,因此我们不赞成使用此方法。
New Features
imagemap 模块增加了一些以前发布的 imagemap 程序无法实现的新功能。
相对于 Referer:信息的 URL 引用。
通过新的 Map 指令
base
进行默认<base>
分配。不需要
imagemap.conf
文件。Point references.
可配置生成图像 Map 菜单。
Imagemap File
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
对,由空格分隔。如果生成图像 Map 菜单,则引用的文本用作链接的文本。以“#”开头的行是 Comments。
Imagemap 文件指令
imagemap 文件中允许使用六个指令。指令可以以任何 Sequences 出现,但是按照在 imagemap 文件中找到的 Sequences 进行处理。
base
指令- 具有
<base href="value">
的效果。Map 文件的非绝对 URL 相对于此值。base
指令将覆盖.htaccess
文件或服务器配置文件中设置的ImapBase。在没有ImapBase
配置指令的情况下,base
默认为http://server_name/
。
- 具有
base_uri
与base
同义。请注意,URL 上的斜杠很重要。
default
指令- 如果给定的坐标不适合任何
poly
,circle
或rect
指令,并且没有point
指令,则采取的操作。如果没有ImapDefault配置设置,则默认为nocontent
,导致返回204 No Content
的状态代码。Client 端应保持显示的页面相同。
- 如果给定的坐标不适合任何
poly
指令- 取三到一百个点,如果用户选择的坐标落在这些点定义的多边形内,则服从该点。
circle
- 获取圆和圆上的点的中心坐标。如果用户选择的点位于圆上,则服从该指令。
rect
指令- 取得矩形的两个相对角的坐标。如果所选点在此矩形内,则服从。
point
指令- 需要一点。如果不满足其他指令,则遵循最接近用户所选点的指令。请注意,如果存在
point
指令并给出了有效的坐标,则不会遵循default
。
- 需要一点。如果不满足其他指令,则遵循最接近用户所选点的指令。请注意,如果存在
Values
每个指令的值可以是以下任意一个:
a URL
- 该 URL 可以是相对 URL 或绝对 URL。相对 URL 可以包含“ ..”语法,并且将相对于
base
值进行解析。
- 该 URL 可以是相对 URL 或绝对 URL。相对 URL 可以包含“ ..”语法,并且将相对于
base
本身不会根据当前值进行解析。不过,语句base mailto:
可以正常工作。
map
- 等效于 imagemap 文件本身的 URL。不会发送任何坐标,因此除非ImapMenu设置为
none
,否则将生成菜单。
- 等效于 imagemap 文件本身的 URL。不会发送任何坐标,因此除非ImapMenu设置为
menu
- 与
map
同义。
- 与
referer
- 等同于引用文档的 URL。如果不存在
Referer:
Headers,则默认为http://servername/
。
- 等同于引用文档的 URL。如果不存在
nocontent
- 发送状态代码
204 No Content
,告诉 Client 端保持相同的页面显示。除base
之外的所有其他都有效
- 发送状态代码
error
- 失败
500 Server Error
。对于除base
之外的所有对象都有效,但对除default
之外的任何对象都有些愚蠢。
- 失败
Coordinates
0,0 200,200
- 坐标由以逗号分隔的 x 和 y 值组成。坐标之间用空格隔开。为了适应 Lynx 处理图像 Map 的方式,如果用户选择坐标
0,0
,就好像没有选择坐标。
- 坐标由以逗号分隔的 x 和 y 值组成。坐标之间用空格隔开。为了适应 Lynx 处理图像 Map 的方式,如果用户选择坐标
Quoted Text
"Menu Text"
- 在值之后或坐标之后,该行可以选择在双引号中包含文本。如果生成菜单,则此字符串用作链接的文本:
<a href="http://example.com/">Menu text</a>
如果不存在带引号的文本,则链接的名称将用作文本:
<a href="http://example.com/">http://example.com</a>
如果要在此文本中使用双引号,则必须将其写为"
。
Example Mapfile
#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?"
引用您的 Map 文件
HTML example
<a href="/maps/imagemap1.map"> <img ismap src="/images/imagemap1.gif"> </a>
XHTML example
<a href="/maps/imagemap1.map"> <img ismap="ismap" src="/images/imagemap1.gif" /> </a>
ImapBase Directive
Description: | 图片 Map 文件的默认base |
---|---|
Syntax: | ImapBase map|referer|URL |
Default: | ImapBase http://servername/ |
Context: | 服务器配置,虚拟主机,目录,.htaccess |
Override: | Indexes |
Status: | Base |
Module: | mod_imagemap |
ImapBase
指令设置图像 Map 文件中使用的默认base
。它的值被 imagemap 文件中的base
指令覆盖。如果不存在,则base
默认为http://servername/
。
See also
ImapDefault Directive
Description: | 使用未显式 Map 的坐标调用图像 Map 时的默认操作 |
---|---|
Syntax: | ImapDefault error|nocontent|map|referer|URL |
Default: | ImapDefault nocontent |
Context: | 服务器配置,虚拟主机,目录,.htaccess |
Override: | Indexes |
Status: | Base |
Module: | mod_imagemap |
ImapDefault
指令设置图像 Map 文件中使用的默认default
。它的值被 imagemap 文件中的default
指令覆盖。如果不存在,则default
操作为nocontent
,这意味着将204 No Content
发送到 Client 端。在这种情况下,Client 端应 continue 显示原始页面。
ImapMenu Directive
Description: | 调用图像 Map 时如果没有给出坐标的动作 |
---|---|
Syntax: | ImapMenu none|formatted|semiformatted|unformatted |
Default: | ImapMenu formatted |
Context: | 服务器配置,虚拟主机,目录,.htaccess |
Override: | Indexes |
Status: | Base |
Module: | mod_imagemap |
ImapMenu
指令确定在没有有效坐标的情况下调用图像 Map 文件时采取的措施。
none
- 如果 ImapMenu 为
none
,则不生成菜单,并且执行default
操作。
- 如果 ImapMenu 为
formatted
formatted
菜单是最简单的菜单。 imagemap 文件中的 Comments 将被忽略。会打印一个第一级的标题,然后是一个小标题,然后将每个链接都放在单独的行上。菜单具有与目录列表一致的外观。
semiformatted
- 在
semiformatted
菜单中,Comments 被打印在图像 Map 文件中出现的位置。空行变成 HTML 换行符。没有打印标题或小节,但是菜单与formatted
菜单相同。
- 在
unformatted
- 打印 Comments,忽略空行。不会打印出任何没有出现在图像 Map 文件中的内容。所有的中断和标题必须作为 Comments 包含在 imagemap 文件中。这使您在菜单外观上具有最大的灵 Active,但是需要将 Map 文件视为 HTML 而不是纯文本。