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="<-" alt="<-" src="/images/left.gif" /></a></div> 22<div id="path"> 23<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Server</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.4</a> > <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"> en </a> | 28<a href="/fr/mod/mod_imagemap.html" hreflang="fr" rel="alternate" title="Fran�ais"> fr </a> | 29<a href="/ko/mod/mod_imagemap.html" hreflang="ko" rel="alternate" title="Korean"> ko </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><base></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><base href="<var>value</var>"> 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 <a href="http://example.com/"><var>Menu text</var></a> 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 <a href="http://example.com/">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>&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. <hr><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 <a href="/maps/imagemap1.map"><br /> 280 <span class="indent"> 281 <img ismap src="/images/imagemap1.gif"><br /> 282 </span> 283 </a> 284 </code></p></div> 285 286 <div class="example"><h3>XHTML example</h3><p><code> 287 <a href="/maps/imagemap1.map"><br /> 288 <span class="indent"> 289 <img ismap="ismap" src="/images/imagemap1.gif" /><br /> 290 </span> 291 </a> 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"> en </a> | 386<a href="/fr/mod/mod_imagemap.html" hreflang="fr" rel="alternate" title="Fran�ais"> fr </a> | 387<a href="/ko/mod/mod_imagemap.html" hreflang="ko" rel="alternate" title="Korean"> ko </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&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>