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 为
formattedformatted菜单是最简单的菜单。 imagemap 文件中的 Comments 将被忽略。会打印一个第一级的标题,然后是一个小标题,然后将每个链接都放在单独的行上。菜单具有与目录列表一致的外观。
semiformatted- 在
semiformatted菜单中,Comments 被打印在图像 Map 文件中出现的位置。空行变成 HTML 换行符。没有打印标题或小节,但是菜单与formatted菜单相同。
- 在
unformatted- 打印 Comments,忽略空行。不会打印出任何没有出现在图像 Map 文件中的内容。所有的中断和标题必须作为 Comments 包含在 imagemap 文件中。这使您在菜单外观上具有最大的灵 Active,但是需要将 Map 文件视为 HTML 而不是纯文本。