home *** CD-ROM | disk | FTP | other *** search
/ Chip 2004 November / CMCD1104.ISO / Software / Complet / Apache / apache_2.0.52-win32-x86-no_ssl.msi / Data.Cab / F278225_mod_alias.xml < prev    next >
Extensible Markup Language  |  2004-08-11  |  14KB  |  364 lines

  1. <?xml version="1.0"?>
  2. <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
  3. <?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?>
  4. <!-- $Revision: 1.9.2.10 $ -->
  5.  
  6. <!--
  7.  Copyright 2002-2004 The Apache Software Foundation
  8.  
  9.  Licensed under the Apache License, Version 2.0 (the "License");
  10.  you may not use this file except in compliance with the License.
  11.  You may obtain a copy of the License at
  12.  
  13.      http://www.apache.org/licenses/LICENSE-2.0
  14.  
  15.  Unless required by applicable law or agreed to in writing, software
  16.  distributed under the License is distributed on an "AS IS" BASIS,
  17.  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  18.  See the License for the specific language governing permissions and
  19.  limitations under the License.
  20. -->
  21.  
  22. <modulesynopsis metafile="mod_alias.xml.meta">
  23.  
  24. <name>mod_alias</name>
  25. <description>Provides for mapping different parts of the host
  26.     filesystem in the document tree and for URL redirection</description>
  27. <status>Base</status>
  28. <sourcefile>mod_alias.c</sourcefile>
  29. <identifier>alias_module</identifier>
  30.  
  31. <summary>
  32.     <p>The directives contained in this module allow for manipulation
  33.     and control of URLs as requests arrive at the server. The
  34.     <directive module="mod_alias">Alias</directive> and <directive
  35.     module="mod_alias">ScriptAlias</directive> directives are used to
  36.     map between URLs and filesystem paths.  This allows for content
  37.     which is not directly under the <directive
  38.     module="core">DocumentRoot</directive> served as part of the web
  39.     document tree. The <directive
  40.     module="mod_alias">ScriptAlias</directive> directive has the
  41.     additional effect of marking the target directory as containing
  42.     only CGI scripts.</p>
  43.  
  44.     <p>The <directive module="mod_alias">Redirect</directive>
  45.     directives are used to instruct clients to make a new request with
  46.     a different URL. They are often used when a resource has moved to
  47.     a new location.</p>
  48.  
  49.     <p><module>mod_alias</module> is designed to handle simple URL
  50.     manipulation tasks.  For more complicated tasks such as
  51.     manipulating the query string, use the tools provided by
  52.     <module>mod_rewrite</module>.</p>
  53.  
  54. </summary>
  55.  
  56. <seealso><module>mod_rewrite</module></seealso> <seealso><a
  57. href="../urlmapping.html">Mapping URLs to the filesystem</a></seealso>
  58.  
  59. <section id="order"><title>Order of Processing</title>
  60.  
  61. <p>Aliases and Redirects occuring in different contexts are processed
  62. like other directives according to standard <a
  63. href="../sections.html#mergin">merging rules</a>.  But when multiple
  64. Aliases or Redirects occur in the same context (for example, in the
  65. same <directive type="section" module="core">VirtualHost</directive>
  66. section) they are processed in a particular order.</p>
  67.  
  68. <p>First, all Redirects are processed before Aliases are processed,
  69. and therefore a request that matches a <directive
  70. module="mod_alias">Redirect</directive> or <directive
  71. module="mod_alias">RedirectMatch</directive> will never have Aliases
  72. applied.  Second, the Aliases and Redirects are processed in the order
  73. they appear in the configuration files, with the first match taking
  74. precedence.</p>
  75.  
  76. <p>For this reason, when two or more of these directives apply to the
  77. same sub-path, you must list the most specific path first in order for
  78. all the directives to have an effect.  For example, the following
  79. configuration will work as expected:</p>
  80.  
  81. <example>
  82. Alias /foo/bar /baz<br />
  83. Alias /foo /gaq
  84. </example>
  85.  
  86. <p>But if the above two directives were reversed in order, the
  87. <code>/foo</code> <directive module="mod_alias">Alias</directive>
  88. would always match before the <code>/foo/bar</code> <directive
  89. module="mod_alias">Alias</directive>, so the latter directive would be
  90. ignored.</p>
  91.  
  92. </section>
  93.  
  94. <directivesynopsis>
  95. <name>Alias</name>
  96. <description>Maps URLs to filesystem locations</description>
  97. <syntax>Alias <var>URL-path</var>
  98. <var>file-path</var>|<var>directory-path</var></syntax>
  99. <contextlist><context>server config</context><context>virtual host</context>
  100. </contextlist>
  101.  
  102. <usage>
  103.  
  104.     <p>The <directive>Alias</directive> directive allows documents to
  105.     be stored in the local filesystem other than under the 
  106.     <directive module="core">DocumentRoot</directive>. URLs with a
  107.     (%-decoded) path beginning with <var>url-path</var> will be mapped
  108.     to local files beginning with <var>directory-path</var>.</p>
  109.  
  110.     <example><title>Example:</title>
  111.       Alias /image /ftp/pub/image
  112.     </example>
  113.  
  114.     <p>A request for http://myserver/image/foo.gif would cause the
  115.     server to return the file /ftp/pub/image/foo.gif.</p>
  116.  
  117.     <p>Note that if you include a trailing / on the
  118.     <var>url-path</var> then the server will require a trailing / in
  119.     order to expand the alias. That is, if you use <code>Alias
  120.     /icons/ /usr/local/apache/icons/</code> then the url
  121.     <code>/icons</code> will not be aliased.</p>
  122.  
  123.     <p>Note that you may need to specify additional <directive
  124.     type="section" module="core">Directory</directive> sections which
  125.     cover the <em>destination</em> of aliases.  Aliasing occurs before
  126.     <directive type="section" module="core">Directory</directive> sections
  127.     are checked, so only the destination of aliases are affected.
  128.     (Note however <directive type="section" module="core">Location</directive>
  129.     sections are run through once before aliases are performed, so
  130.     they will apply.)</p>
  131.  
  132.     <p>In particular, if you are creating an <code>Alias</code> to a
  133.     directory outside of your <directive
  134.     module="core">DocumentRoot</directive>, you may need to explicitly
  135.     permit access to the target directory.</p>
  136.  
  137.     <example><title>Example:</title>
  138.         Alias /image /ftp/pub/image<br />
  139.         <Directory /ftp/pub/image><br />
  140.         <indent>
  141.             Order allow,deny<br />
  142.             Allow from all<br />
  143.         </indent>
  144.         </Directory>
  145.     </example>
  146.  
  147. </usage>
  148. </directivesynopsis>
  149.  
  150. <directivesynopsis>
  151. <name>AliasMatch</name>
  152. <description>Maps URLs to filesystem locations using regular 
  153. expressions</description>
  154. <syntax>AliasMatch <var>regex</var>
  155. <var>file-path</var>|<var>directory-path</var></syntax>
  156. <contextlist><context>server config</context><context>virtual host</context>
  157. </contextlist>
  158.  
  159. <usage>
  160.     <p>This directive is equivalent to <directive
  161.     module="mod_alias">Alias</directive>, but makes use of standard
  162.     regular expressions, instead of simple prefix matching. The
  163.     supplied regular expression is matched against the URL-path, and
  164.     if it matches, the server will substitute any parenthesized
  165.     matches into the given string and use it as a filename. For
  166.     example, to activate the <code>/icons</code> directory, one might
  167.     use:</p>
  168.  
  169.     <example>
  170.       AliasMatch ^/icons(.*) /usr/local/apache/icons$1
  171.     </example>
  172. </usage>
  173. </directivesynopsis>
  174.  
  175. <directivesynopsis>
  176. <name>Redirect</name>
  177. <description>Sends an external redirect asking the client to fetch
  178. a different URL</description>
  179. <syntax>Redirect [<var>status</var>] <var>URL-path</var>
  180. <var>URL</var></syntax>
  181. <contextlist><context>server config</context><context>virtual host</context>
  182. <context>directory</context><context>.htaccess</context></contextlist>
  183. <override>FileInfo</override>
  184.  
  185. <usage>
  186.     <p>The Redirect directive maps an old URL into a new one. The
  187.     new URL is returned to the client which attempts to fetch it
  188.     again with the new address. <var>URL-path</var> a (%-decoded)
  189.     path; any requests for documents beginning with this path will
  190.     be returned a redirect error to a new (%-encoded) URL beginning
  191.     with <var>URL</var>.</p>
  192.  
  193.     <example><title>Example:</title>
  194.       Redirect /service http://foo2.bar.com/service
  195.     </example>
  196.  
  197.     <p>If the client requests http://myserver/service/foo.txt, it
  198.     will be told to access http://foo2.bar.com/service/foo.txt
  199.     instead.</p>
  200.  
  201. <note><title>Note</title> <p>Redirect directives take precedence over
  202. Alias and ScriptAlias directives, irrespective of their ordering in
  203. the configuration file. Also, <var>URL-path</var> must be a fully
  204. qualified URL, not a relative path, even when used with .htaccess files or
  205. inside of <directive type="section" module="core">Directory</directive>
  206. sections.</p></note>
  207.  
  208.     <p>If no <var>status</var> argument is given, the redirect will
  209.     be "temporary" (HTTP status 302). This indicates to the client
  210.     that the resource has moved temporarily. The <var>status</var>
  211.     argument can be used to return other HTTP status codes:</p>
  212.  
  213.     <dl>
  214.       <dt>permanent</dt>
  215.  
  216.       <dd>Returns a permanent redirect status (301) indicating that
  217.       the resource has moved permanently.</dd>
  218.  
  219.       <dt>temp</dt>
  220.  
  221.       <dd>Returns a temporary redirect status (302). This is the
  222.       default.</dd>
  223.  
  224.       <dt>seeother</dt>
  225.  
  226.       <dd>Returns a "See Other" status (303) indicating that the
  227.       resource has been replaced.</dd>
  228.  
  229.       <dt>gone</dt>
  230.  
  231.       <dd>Returns a "Gone" status (410) indicating that the
  232.       resource has been permanently removed. When this status is
  233.       used the <var>URL</var> argument should be omitted.</dd>
  234.     </dl>
  235.  
  236.     <p>Other status codes can be returned by giving the numeric
  237.     status code as the value of <var>status</var>. If the status is
  238.     between 300 and 399, the <var>URL</var> argument must be present,
  239.     otherwise it must be omitted. Note that the status must be
  240.     known to the Apache code (see the function
  241.     <code>send_error_response</code> in http_protocol.c).</p>
  242.  
  243.     <example><title>Example:</title>
  244.       Redirect permanent /one http://example.com/two<br />
  245.       Redirect 303 /three http://example.com/other
  246.     </example>
  247.  
  248. </usage>
  249. </directivesynopsis>
  250.  
  251. <directivesynopsis>
  252. <name>RedirectMatch</name>
  253. <description>Sends an external redirect based on a regular expression match 
  254. of the current URL</description>
  255. <syntax>RedirectMatch [<var>status</var>] <var>regex</var>
  256. <var>URL</var></syntax>
  257. <contextlist><context>server config</context><context>virtual host</context>
  258. <context>directory</context><context>.htaccess</context></contextlist>
  259. <override>FileInfo</override>
  260.  
  261. <usage>
  262.     <p>This directive is equivalent to <directive
  263.     module="mod_alias">Redirect</directive>, but makes use of standard
  264.     regular expressions, instead of simple prefix matching. The
  265.     supplied regular expression is matched against the URL-path, and
  266.     if it matches, the server will substitute any parenthesized
  267.     matches into the given string and use it as a filename. For
  268.     example, to redirect all GIF files to like-named JPEG files on
  269.     another server, one might use:</p>
  270.  
  271.     <example>
  272.       RedirectMatch (.*)\.gif$ http://www.anotherserver.com$1.jpg
  273.     </example>
  274. </usage>
  275. </directivesynopsis>
  276.  
  277. <directivesynopsis>
  278. <name>RedirectTemp</name>
  279. <description>Sends an external temporary redirect asking the client to fetch
  280. a different URL</description>
  281. <syntax>RedirectTemp <var>URL-path</var> <var>URL</var></syntax>
  282. <contextlist><context>server config</context><context>virtual host</context>
  283. <context>directory</context><context>.htaccess</context></contextlist>
  284. <override>FileInfo</override>
  285.  
  286. <usage>
  287.     <p>This directive makes the client know that the Redirect is
  288.     only temporary (status 302). Exactly equivalent to
  289.     <code>Redirect temp</code>.</p>
  290. </usage>
  291. </directivesynopsis>
  292.  
  293. <directivesynopsis>
  294. <name>RedirectPermanent</name>
  295. <description>Sends an external permanent redirect asking the client to fetch
  296. a different URL</description>
  297. <syntax>RedirectPermanent <var>URL-path</var> <var>URL</var></syntax>
  298. <contextlist><context>server config</context><context>virtual host</context>
  299. <context>directory</context><context>.htaccess</context></contextlist>
  300. <override>FileInfo</override>
  301.  
  302. <usage>
  303.     <p>This directive makes the client know that the Redirect is
  304.     permanent (status 301). Exactly equivalent to <code>Redirect
  305.     permanent</code>.</p>
  306. </usage>
  307. </directivesynopsis>
  308.  
  309. <directivesynopsis>
  310. <name>ScriptAlias</name>
  311. <description>Maps a URL to a filesystem location and designates the
  312. target as a CGI script</description>
  313. <syntax>ScriptAlias <var>URL-path</var>
  314. <var>file-path</var>|<var>directory-path</var></syntax>
  315. <contextlist><context>server config</context><context>virtual host</context>
  316. </contextlist>
  317.  
  318. <usage>
  319.     <p>The <directive>ScriptAlias</directive> directive has the same
  320.     behavior as the <directive module="mod_alias">Alias</directive>
  321.     directive, except that in addition it marks the target directory
  322.     as containing CGI scripts that will be processed by <module
  323.     >mod_cgi</module>'s cgi-script handler. URLs with a
  324.     (%-decoded) path beginning with <var>URL-path</var> will be mapped
  325.     to scripts beginning with the second argument which is a full
  326.     pathname in the local filesystem.</p>
  327.  
  328.     <example><title>Example:</title>
  329.       ScriptAlias /cgi-bin/ /web/cgi-bin/
  330.     </example>
  331.  
  332.     <p>A request for <code>http://myserver/cgi-bin/foo</code> would cause the
  333.     server to run the script <code>/web/cgi-bin/foo</code>.</p>
  334. </usage>
  335. </directivesynopsis>
  336.  
  337. <directivesynopsis>
  338. <name>ScriptAliasMatch</name>
  339. <description>Maps a URL to a filesystem location using a regular expression
  340. and designates the target as a CGI script</description>
  341. <syntax>ScriptAliasMatch <var>regex</var>
  342. <var>file-path</var>|<var>directory-path</var></syntax>
  343. <contextlist><context>server config</context><context>virtual host</context>
  344. </contextlist>
  345.  
  346. <usage>
  347.     <p>This directive is equivalent to <directive module="mod_alias"
  348.     >ScriptAlias</directive>, but makes use of standard
  349.     regular expressions, instead of simple prefix matching. The
  350.     supplied regular expression is matched against the URL-path,
  351.     and if it matches, the server will substitute any parenthesized
  352.     matches into the given string and use it as a filename. For
  353.     example, to activate the standard <code>/cgi-bin</code>, one
  354.     might use:</p>
  355.  
  356.     <example>
  357.       ScriptAliasMatch ^/cgi-bin(.*) /usr/local/apache/cgi-bin$1
  358.     </example>
  359. </usage>
  360. </directivesynopsis>
  361.  
  362. </modulesynopsis>
  363.  
  364.