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