| <?xml version='1.0' encoding='UTF-8' ?> |
| <!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd"> |
| <?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?> |
| <!-- $LastChangedRevision$ --> |
| |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed with |
| this work for additional information regarding copyright ownership. |
| The ASF licenses this file to You under the Apache License, Version 2.0 |
| (the "License"); you may not use this file except in compliance with |
| the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| |
| <manualpage metafile="rewrite_intro.xml.meta"> |
| <parentdocument href="./index.html"/> |
| |
| <title>Apache mod_rewrite Introduction</title> |
| |
| <summary> |
| <p>This document supplements the <module>mod_rewrite</module> |
| <a href="../mod/mod_rewrite.html">reference documentation</a>. It |
| describes the basic concepts necessary for use of |
| <module>mod_rewrite</module>. Other documents go into greater detail, |
| but this doc should help the beginner get their feet wet. |
| </p> |
| </summary> |
| |
| <seealso><a href="../mod/mod_rewrite.html">Module |
| documentation</a></seealso> |
| <seealso><a href="rewrite_tech.html">Technical details</a></seealso> |
| <seealso><a href="rewrite_guide.html">Practical solutions to common |
| problems</a></seealso> |
| |
| <section id="introduction"><title>Introduction</title> |
| <p>The Apache module <module>mod_rewrite</module> is a very powerful and |
| sophisticated module which provides a way to do URL manipulations. With |
| it, you can do nearly all types of URL rewriting that you may need. It |
| is, however, somewhat complex, and may be intimidating to the beginner. |
| There is also a tendency to treat rewrite rules as magic incantation, |
| using them without actually understanding what they do.</p> |
| |
| <p>This document attempts to give sufficient background so that what |
| follows is understood, rather than just copied blindly. |
| </p> |
| </section> |
| |
| <section id="regex"><title>Regular Expressions</title> |
| <p>Basic regex building blocks</p> |
| </section> |
| |
| <section id="rewriterule"><title>RewriteRule basics</title> |
| <p> |
| Basic anatomy of a RewriteRule, with exhaustively annotated simple |
| examples. |
| </p> |
| </section> |
| |
| <section id="flags"><title>Rewrite Flags</title> |
| <p>Discussion of the flags to RewriteRule, and when and why one might |
| use them.</p> |
| </section> |
| |
| <section id="rewritecond"><title>Rewrite conditions</title> |
| <p>Discussion of RewriteCond, looping, and other related concepts. |
| </p> |
| </section> |
| |
| <section id="rewritemap"><title>Rewrite maps</title> |
| <p>Discussion of RewriteMap, including simple, but heavily annotated, |
| examples.</p> |
| </section> |
| |
| <section id="htaccess"><title>.htaccess files</title> |
| <p>Discussion of the differences between rewrite rules in httpd.conf and |
| in .htaccess files.</p> |
| </section> |
| |
| <section id="EnvVar"><title>Environment Variables</title> |
| |
| <p>This module keeps track of two additional (non-standard) |
| CGI/SSI environment variables named <code>SCRIPT_URL</code> |
| and <code>SCRIPT_URI</code>. These contain the |
| <em>logical</em> Web-view to the current resource, while the |
| standard CGI/SSI variables <code>SCRIPT_NAME</code> and |
| <code>SCRIPT_FILENAME</code> contain the <em>physical</em> |
| System-view. </p> |
| |
| <p>Notice: These variables hold the URI/URL <em>as they were |
| initially requested</em>, <em>i.e.</em>, <em>before</em> any |
| rewriting. This is important because the rewriting process is |
| primarily used to rewrite logical URLs to physical |
| pathnames.</p> |
| |
| <example><title>Example</title> |
| <pre> |
| SCRIPT_NAME=/sw/lib/w3s/tree/global/u/rse/.www/index.html |
| SCRIPT_FILENAME=/u/rse/.www/index.html |
| SCRIPT_URL=/u/rse/ |
| SCRIPT_URI=http://en1.engelschall.com/u/rse/ |
| </pre> |
| </example> |
| |
| </section> |
| |
| </manualpage> |
| |