1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head><!--
4        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
5              This file is generated from xml source: DO NOT EDIT
6        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
7      -->
8<title>mod_imagemap - Apache HTTP Server</title>
9<link href="/style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
10<link href="/style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
11<link href="/style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="/style/css/prettify.css" />
12<script src="/style/scripts/prettify.min.js" type="text/javascript">
13</script>
14
15<link href="/images/favicon.ico" rel="shortcut icon" /></head>
16<body>
17<div id="page-header">
18<p class="menu"><a href="/mod/">Modules</a> | <a href="/mod/directives.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="/glossary.html">Glossary</a> | <a href="/sitemap.html">Sitemap</a></p>
19<p class="apache">Apache HTTP Server Version 2.4</p>
20<img alt="" src="/images/feather.gif" /></div>
21<div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="/images/left.gif" /></a></div>
22<div id="path">
23<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">HTTP Server</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <a href="../">Version 2.4</a> &gt; <a href="./">Modules</a></div>
24<div id="page-content">
25<div id="preamble"><h1>Apache Module mod_imagemap</h1>
26<div class="toplang">
27<p><span>Available Languages: </span><a href="/en/mod/mod_imagemap.html" title="English">&nbsp;en&nbsp;</a> |
28<a href="/fr/mod/mod_imagemap.html" hreflang="fr" rel="alternate" title="Fran�ais">&nbsp;fr&nbsp;</a> |
29<a href="/ko/mod/mod_imagemap.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a></p>
30</div>
31<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Server-side imagemap processing</td></tr>
32<tr><th><a href="module-dict.html#Status">Status:</a></th><td>Base</td></tr>
33<tr><th><a href="module-dict.html#ModuleIdentifier">Module�Identifier:</a></th><td>imagemap_module</td></tr>
34<tr><th><a href="module-dict.html#SourceFile">Source�File:</a></th><td>mod_imagemap.c</td></tr></table>
35<h3>Summary</h3>
36
37    <p>This module processes <code>.map</code> files, thereby
38    replacing the functionality of the <code>imagemap</code> CGI
39    program. Any directory or document type configured to use the
40    handler <code>imap-file</code> (using either
41    <code class="directive"><a href="/mod/mod_mime.html#addhandler">AddHandler</a></code> or
42    <code class="directive"><a href="/mod/core.html#sethandler">SetHandler</a></code>)
43    will be processed by this module.</p>
44
45    <p>The following directive will activate files ending with
46    <code>.map</code> as imagemap files:</p>
47
48    <pre class="prettyprint lang-config">AddHandler imap-file map</pre>
49
50
51    <p>Note that the following is still supported:</p>
52
53    <pre class="prettyprint lang-config">AddType application/x-httpd-imap map</pre>
54
55
56    <p>However, we are trying to phase out "magic MIME types" so we
57    are deprecating this method.</p>
58</div>
59<div id="quickview"><h3 class="directives">Directives</h3>
60<ul id="toc">
61<li><img alt="" src="/images/down.gif" /> <a href="#imapbase">ImapBase</a></li>
62<li><img alt="" src="/images/down.gif" /> <a href="#imapdefault">ImapDefault</a></li>
63<li><img alt="" src="/images/down.gif" /> <a href="#imapmenu">ImapMenu</a></li>
64</ul>
65<h3>Topics</h3>
66<ul id="topics">
67<li><img alt="" src="/images/down.gif" /> <a href="#features">New Features</a></li>
68<li><img alt="" src="/images/down.gif" /> <a href="#imapfile">Imagemap File</a></li>
69<li><img alt="" src="/images/down.gif" /> <a href="#example">Example Mapfile</a></li>
70<li><img alt="" src="/images/down.gif" /> <a href="#referencing">Referencing your mapfile</a></li>
71</ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
72<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
73<div class="section">
74<h2><a name="features" id="features">New Features</a></h2>
75
76    <p>The imagemap module adds some new features that were not
77    possible with previously distributed imagemap programs.</p>
78
79    <ul>
80      <li>URL references relative to the Referer: information.</li>
81
82      <li>Default <code>&lt;base&gt;</code> assignment through a new map
83      directive <code>base</code>.</li>
84
85      <li>No need for <code>imagemap.conf</code> file.</li>
86
87      <li>Point references.</li>
88
89      <li>Configurable generation of imagemap menus.</li>
90    </ul>
91</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
92<div class="section">
93<h2><a name="imapfile" id="imapfile">Imagemap File</a></h2>
94
95    <p>The lines in the imagemap files can have one of several
96    formats:</p>
97
98    <div class="example"><p><code>
99      directive value [<var>x</var>,<var>y</var> ...]<br />
100      directive value "<var>Menu text</var>" [<var>x</var>,<var>y</var>
101      ...]<br />
102      directive value <var>x</var>,<var>y</var> ... "<var>Menu text</var>"
103    </code></p></div>
104
105    <p>The directive is one of <code>base</code>,
106    <code>default</code>, <code>poly</code>, <code>circle</code>,
107    <code>rect</code>, or <code>point</code>. The value is an
108    absolute or relative URL, or one of the special values listed
109    below. The coordinates are <code><var>x</var>,<var>y</var></code>
110    pairs separated by whitespace. The quoted text is used as the text of
111    the link if a imagemap menu is generated. Lines beginning with '#' are
112    comments.</p>
113
114    <h3><a name="imapfile.directives" id="imapfile.directives">Imagemap File Directives</a></h3>
115      <p>There are six directives allowed in the imagemap file. The
116      directives can come in any order, but are processed in the
117      order they are found in the imagemap file.</p>
118
119      <dl>
120      <dt><code>base</code> Directive</dt>
121
122      <dd><p>Has the effect of <code>&lt;base href="<var>value</var>"&gt;
123      </code>. The non-absolute URLs of the map-file are taken relative
124      to this value. The <code>base</code> directive overrides
125      <code class="directive"><a href="#imapbase">ImapBase</a></code> as set in a
126      <code>.htaccess</code> file or in the server configuration files.
127      In the absence of an <code class="directive">ImapBase</code> configuration
128      directive, <code>base</code> defaults to
129      <code>http://server_name/</code>.</p>
130      <p><code>base_uri</code> is synonymous with <code>base</code>.
131      Note that a trailing slash on the URL is significant.</p></dd>
132
133      <dt><code>default</code> Directive</dt>
134
135      <dd>The action taken if the coordinates given do not fit any
136      of the <code>poly</code>, <code>circle</code> or
137      <code>rect</code> directives, and there are no
138      <code>point</code> directives. Defaults to <code>nocontent</code>
139      in the absence of an <code class="directive"><a href="#imapdefault">ImapDefault</a></code> configuration setting, causing a status
140      code of <code>204 No Content</code> to be returned. The client
141      should keep the same page displayed.</dd>
142
143      <dt><code>poly</code> Directive</dt>
144
145      <dd>Takes three to one-hundred points, and is obeyed if the
146      user selected coordinates fall within the polygon defined by
147      these points.</dd>
148
149      <dt><code>circle</code></dt>
150
151      <dd>Takes the center coordinates of a circle and a point on
152      the circle. Is obeyed if the user selected point is with the
153      circle.</dd>
154
155      <dt><code>rect</code> Directive</dt>
156
157      <dd>Takes the coordinates of two opposing corners of a
158      rectangle. Obeyed if the point selected is within this
159      rectangle.</dd>
160
161      <dt><code>point</code> Directive</dt>
162
163      <dd>Takes a single point. The point directive closest to the
164      user selected point is obeyed if no other directives are
165      satisfied. Note that <code>default</code> will not be
166      followed if a <code>point</code> directive is present and
167      valid coordinates are given.</dd>
168      </dl>
169    
170
171    <h3><a name="imapfile.values" id="imapfile.values">Values</a></h3>
172
173      <p>The values for each of the directives can be any of the
174      following:</p>
175
176      <dl>
177      <dt>a URL</dt>
178
179      <dd><p>The URL can be relative or absolute URL. Relative URLs
180      can contain '..' syntax and will be resolved relative to the
181      <code>base</code> value.</p>
182      <p><code>base</code> itself will not be resolved according to the
183      current value. A statement <code>base mailto:</code> will
184      work properly, though.</p></dd>
185
186      <dt><code>map</code></dt>
187
188      <dd>Equivalent to the URL of the imagemap file itself. No
189      coordinates are sent with this, so a menu will be generated
190      unless <code class="directive"><a href="#imapmenu">ImapMenu</a></code> is set to
191      <code>none</code>.</dd>
192
193      <dt><code>menu</code></dt>
194      <dd>Synonymous with <code>map</code>.</dd>
195
196      <dt><code>referer</code></dt>
197
198      <dd>Equivalent to the URL of the referring document. Defaults
199      to <code>http://servername/</code> if no <code>Referer:</code>
200      header was present.</dd>
201
202      <dt><code>nocontent</code></dt>
203
204      <dd>Sends a status code of <code>204 No Content</code>,
205      telling the client to keep the same page displayed. Valid for
206      all but <code>base</code>.</dd>
207
208      <dt><code>error</code></dt>
209
210      <dd>Fails with a <code>500 Server Error</code>. Valid for all
211      but <code>base</code>, but sort of silly for anything but
212      <code>default</code>.</dd>
213      </dl>
214    
215
216    <h3><a name="imapfile.coords" id="imapfile.coords">Coordinates</a></h3>
217
218      <dl>
219      <dt><code>0,0 200,200</code></dt>
220
221      <dd>A coordinate consists of an <var>x</var> and a <var>y</var>
222      value separated by a comma. The coordinates are separated
223      from each other by whitespace. To accommodate the way Lynx
224      handles imagemaps, should a user select the coordinate
225      <code>0,0</code>, it is as if no coordinate had been
226      selected.</dd>
227      </dl>
228
229    
230
231    <h3><a name="imapfile.quotedtext" id="imapfile.quotedtext">Quoted Text</a></h3>
232
233      <dl>
234      <dt><code>"<var>Menu Text</var>"</code></dt>
235
236      <dd><p>After the value or after the coordinates, the line
237      optionally may contain text within double quotes. This string
238      is used as the text for the link if a menu is
239      generated:</p>
240
241      <div class="example"><p><code>
242        &lt;a href="http://example.com/"&gt;<var>Menu text</var>&lt;/a&gt;
243      </code></p></div>
244
245      <p>If no quoted text is present, the name of the link will be
246      used as the text:</p>
247
248      <div class="example"><p><code>
249        &lt;a href="http://example.com/"&gt;http://example.com</a>;
250      </code></p></div>
251
252      <p>If you want to use double quotes within this text, you have to
253      write them as <code>&amp;quot;</code>.</p></dd>
254      </dl>
255
256    
257</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
258<div class="section">
259<h2><a name="example" id="example">Example Mapfile</a></h2>
260
261    <div class="example"><p><code>
262      #Comments are printed in a 'formatted' or 'semiformatted' menu.<br />
263      #And can contain html tags. &lt;hr&gt;<br />
264      base referer<br />
265      poly map "Could I have a menu, please?" 0,0 0,10 10,10 10,0<br />
266      rect .. 0,0 77,27 "the directory of the referer"<br />
267      circle http://www.inetnebr.example.com/lincoln/feedback/ 195,0 305,27<br />
268      rect another_file "in same directory as referer" 306,0 419,27<br />
269      point http://www.zyzzyva.example.com/ 100,100<br />
270      point http://www.tripod.example.com/ 200,200<br />
271      rect mailto:nate@tripod.example.com 100,150 200,0 "Bugs?"<br />
272    </code></p></div>
273
274</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
275<div class="section">
276<h2><a name="referencing" id="referencing">Referencing your mapfile</a></h2>
277
278    <div class="example"><h3>HTML example</h3><p><code>
279      &lt;a href="/maps/imagemap1.map"&gt;<br />
280      <span class="indent">
281        &lt;img ismap src="/images/imagemap1.gif"&gt;<br />
282      </span>
283      &lt;/a&gt;
284    </code></p></div>
285
286    <div class="example"><h3>XHTML example</h3><p><code>
287      &lt;a href="/maps/imagemap1.map"&gt;<br />
288      <span class="indent">
289        &lt;img ismap="ismap" src="/images/imagemap1.gif" /&gt;<br />
290      </span>
291      &lt;/a&gt;
292    </code></p></div>
293
294</div>
295<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
296<div class="directive-section"><h2><a name="ImapBase" id="ImapBase">ImapBase</a> <a name="imapbase" id="imapbase">Directive</a></h2>
297<table class="directive">
298<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Default <code>base</code> for imagemap files</td></tr>
299<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ImapBase map|referer|<var>URL</var></code></td></tr>
300<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ImapBase http://servername/</code></td></tr>
301<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
302<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>Indexes</td></tr>
303<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
304<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_imagemap</td></tr>
305</table>
306    <p>The <code class="directive">ImapBase</code> directive sets the default
307    <code>base</code> used in the imagemap files. Its value is
308    overridden by a <code>base</code> directive within the imagemap
309    file. If not present, the <code>base</code> defaults to
310    <code>http://<var>servername</var>/</code>.</p>
311
312<h3>See also</h3>
313<ul>
314<li><code class="directive"><a href="/mod/core.html#usecanonicalname">UseCanonicalName</a></code></li>
315</ul>
316</div>
317<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
318<div class="directive-section"><h2><a name="ImapDefault" id="ImapDefault">ImapDefault</a> <a name="imapdefault" id="imapdefault">Directive</a></h2>
319<table class="directive">
320<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Default action when an imagemap is called with coordinates
321that are not explicitly mapped</td></tr>
322<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ImapDefault error|nocontent|map|referer|<var>URL</var></code></td></tr>
323<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ImapDefault nocontent</code></td></tr>
324<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
325<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>Indexes</td></tr>
326<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
327<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_imagemap</td></tr>
328</table>
329    <p>The <code class="directive">ImapDefault</code> directive sets the default
330    <code>default</code> used in the imagemap files. Its value is
331    overridden by a <code>default</code> directive within the
332    imagemap file. If not present, the <code>default</code> action
333    is <code>nocontent</code>, which means that a <code>204 No
334    Content</code> is sent to the client. In this case, the client
335    should continue to display the original page.</p>
336
337</div>
338<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
339<div class="directive-section"><h2><a name="ImapMenu" id="ImapMenu">ImapMenu</a> <a name="imapmenu" id="imapmenu">Directive</a></h2>
340<table class="directive">
341<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Action if no coordinates are given when calling
342an imagemap</td></tr>
343<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ImapMenu none|formatted|semiformatted|unformatted</code></td></tr>
344<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ImapMenu formatted</code></td></tr>
345<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
346<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>Indexes</td></tr>
347<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
348<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_imagemap</td></tr>
349</table>
350    <p>The <code class="directive">ImapMenu</code> directive determines the
351    action taken if an imagemap file is called without valid
352    coordinates.</p>
353
354    <dl>
355      <dt><code>none</code></dt>
356      <dd>If ImapMenu is <code>none</code>, no menu is generated,
357      and the <code>default</code> action is performed.</dd>
358
359      <dt><code>formatted</code></dt>
360      <dd>A <code>formatted</code> menu is the simplest menu.
361      Comments in the imagemap file are ignored. A level one header
362      is printed, then an hrule, then the links each on a separate
363      line. The menu has a consistent, plain look close to that of
364      a directory listing.</dd>
365
366      <dt><code>semiformatted</code></dt>
367      <dd>In the <code>semiformatted</code> menu, comments are
368      printed where they occur in the imagemap file. Blank lines
369      are turned into HTML breaks. No header or hrule is printed,
370      but otherwise the menu is the same as a
371      <code>formatted</code> menu.</dd>
372
373      <dt><code>unformatted</code></dt>
374      <dd>Comments are printed, blank lines are ignored. Nothing is
375      printed that does not appear in the imagemap file. All breaks
376      and headers must be included as comments in the imagemap
377      file. This gives you the most flexibility over the appearance
378      of your menus, but requires you to treat your map files as
379      HTML instead of plaintext.</dd>
380    </dl>
381
382</div>
383</div>
384<div class="bottomlang">
385<p><span>Available Languages: </span><a href="/en/mod/mod_imagemap.html" title="English">&nbsp;en&nbsp;</a> |
386<a href="/fr/mod/mod_imagemap.html" hreflang="fr" rel="alternate" title="Fran�ais">&nbsp;fr&nbsp;</a> |
387<a href="/ko/mod/mod_imagemap.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a></p>
388</div><div class="top"><a href="#page-header"><img src="/images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Comments</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&amp;A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
389<script type="text/javascript"><!--//--><![CDATA[//><!--
390var comments_shortname = 'httpd';
391var comments_identifier = 'http://httpd.apache.org/docs/2.4/mod/mod_imagemap.html';
392(function(w, d) {
393    if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
394        d.write('<div id="comments_thread"><\/div>');
395        var s = d.createElement('script');
396        s.type = 'text/javascript';
397        s.async = true;
398        s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
399        (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
400    }
401    else { 
402        d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
403    }
404})(window, document);
405//--><!]]></script></div><div id="footer">
406<p class="apache">Copyright 2014 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
407<p class="menu"><a href="/mod/">Modules</a> | <a href="/mod/directives.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="/glossary.html">Glossary</a> | <a href="/sitemap.html">Sitemap</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
408if (typeof(prettyPrint) !== 'undefined') {
409    prettyPrint();
410}
411//--><!]]></script>
412</body></html>