Apache 模块 mod_imagemap

Description:服务器端图像 Map 处理
Status:Base
Module Identifier:imagemap_module
Source File:mod_imagemap.c

Summary

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

以下指令将激活以.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"

指令是basedefaultpolycirclerectpoint之一。该值是绝对或相对 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_uribase同义。请注意,URL 上的斜杠很重要。

  • default指令

    • 如果给定的坐标不适合任何polycirclerect指令,并且没有point指令,则采取的操作。如果没有ImapDefault配置设置,则默认为nocontent,导致返回204 No Content的状态代码。Client 端应保持显示的页面相同。
  • poly指令

    • 取三到一百个点,如果用户选择的坐标落在这些点定义的多边形内,则服从该点。
  • circle

    • 获取圆和圆上的点的中心坐标。如果用户选择的点位于圆上,则服从该指令。
  • rect指令

    • 取得矩形的两个相对角的坐标。如果所选点在此矩形内,则服从。
  • point指令

    • 需要一点。如果不满足其他指令,则遵循最接近用户所选点的指令。请注意,如果存在point指令并给出了有效的坐标,则不会遵循default

Values

每个指令的值可以是以下任意一个:

  • a URL

    • 该 URL 可以是相对 URL 或绝对 URL。相对 URL 可以包含“ ..”语法,并且将相对于base值进行解析。

base本身不会根据当前值进行解析。不过,语句base mailto:可以正常工作。

  • map

    • 等效于 imagemap 文件本身的 URL。不会发送任何坐标,因此除非ImapMenu设置为none,否则将生成菜单。
  • menu

    • map同义。
  • referer

    • 等同于引用文档的 URL。如果不存在Referer:Headers,则默认为http://servername/
  • nocontent

    • 发送状态代码204 No Content,告诉 Client 端保持相同的页面显示。除base之外的所有其他都有效
  • error

    • 失败500 Server Error。对于除base之外的所有对象都有效,但对除default之外的任何对象都有些愚蠢。

Coordinates

  • 0,0 200,200

    • 坐标由以逗号分隔的 x 和 y 值组成。坐标之间用空格隔开。为了适应 Lynx 处理图像 Map 的方式,如果用户选择坐标0,0,就好像没有选择坐标。

Quoted Text

  • "Menu Text"

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

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

如果不存在带引号的文本,则链接的名称将用作文本:

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

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

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:[email protected] 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操作。
  • formatted

    • formatted菜单是最简单的菜单。 imagemap 文件中的 Comments 将被忽略。会打印一个第一级的标题,然后是一个小标题,然后将每个链接都放在单独的行上。菜单具有与目录列表一致的外观。
  • semiformatted

    • semiformatted菜单中,Comments 被打印在图像 Map 文件中出现的位置。空行变成 HTML 换行符。没有打印标题或小节,但是菜单与formatted菜单相同。
  • unformatted

    • 打印 Comments,忽略空行。不会打印出任何没有出现在图像 Map 文件中的内容。所有的中断和标题必须作为 Comments 包含在 imagemap 文件中。这使您在菜单外观上具有最大的灵 Active,但是需要将 Map 文件视为 HTML 而不是纯文本。