Return-Path:
Delivered-To: apmail-httpd-cvs-archive@www.apache.org
Received: (qmail 23608 invoked from network); 5 Jan 2011 22:40:09 -0000
Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3)
by minotaur.apache.org with SMTP; 5 Jan 2011 22:40:09 -0000
Received: (qmail 27275 invoked by uid 500); 5 Jan 2011 22:40:09 -0000
Delivered-To: apmail-httpd-cvs-archive@httpd.apache.org
Received: (qmail 27226 invoked by uid 500); 5 Jan 2011 22:40:09 -0000
Mailing-List: contact cvs-help@httpd.apache.org; run by ezmlm
Precedence: bulk
Reply-To: dev@httpd.apache.org
list-help:
list-unsubscribe:
List-Post:
List-Id:
Delivered-To: mailing list cvs@httpd.apache.org
Received: (qmail 27219 invoked by uid 99); 5 Jan 2011 22:40:09 -0000
Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136)
by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 05 Jan 2011 22:40:09 +0000
X-ASF-Spam-Status: No, hits=-2000.0 required=10.0
tests=ALL_TRUSTED
X-Spam-Check-By: apache.org
Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4)
by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 05 Jan 2011 22:40:08 +0000
Received: by eris.apache.org (Postfix, from userid 65534)
id 51E2523888EC; Wed, 5 Jan 2011 22:39:48 +0000 (UTC)
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: svn commit: r1055671 -
/httpd/httpd/trunk/docs/manual/mod/mod_rewrite.xml
Date: Wed, 05 Jan 2011 22:39:48 -0000
To: cvs@httpd.apache.org
From: covener@apache.org
X-Mailer: svnmailer-1.0.8
Message-Id: <20110105223948.51E2523888EC@eris.apache.org>
Author: covener
Date: Wed Jan 5 22:39:47 2011
New Revision: 1055671
URL: http://svn.apache.org/viewvc?rev=1055671&view=rev
Log:
PR#44838: be more up front with how the per-dir RewriteRule comparison is
the filesystem path minus the Directory the rules were listed in.
Modified:
httpd/httpd/trunk/docs/manual/mod/mod_rewrite.xml
Modified: httpd/httpd/trunk/docs/manual/mod/mod_rewrite.xml
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/docs/manual/mod/mod_rewrite.xml?rev=1055671&r1=1055670&r2=1055671&view=diff
==============================================================================
--- httpd/httpd/trunk/docs/manual/mod/mod_rewrite.xml (original)
+++ httpd/httpd/trunk/docs/manual/mod/mod_rewrite.xml Wed Jan 5 22:39:47 2011
@@ -879,24 +879,59 @@ RewriteRule ^/$ /homepa
RewriteRule.
What is matched?
- The Pattern will initially be matched against the part of the
- URL after the hostname and port, and before the query string.
-
- When the RewriteRule appears in per-directory (htaccess) context, the
- Pattern is matched against what remains of the URL after removing
- the prefix that lead Apache httpd to the current rules (see the
- RewriteBase). The removed prefix
- always ends with a slash, meaning the matching occurs against a string which
- never has a leading slash. A Pattern with ^/
never
- matches in per-directory context.
-
+ In VirtualHost context,
+ The Pattern will initially be matched against the part of the
+ URL after the hostname and port, and before the query string (e.g. "/app1/index.html").
+
+ In Directory and htaccess context,
+ the Pattern will initially be matched against the
+ filesystem path, after removing the prefix that lead the server
+ to the current RewriteRule (e.g. "app1/index.html"
+ or "index.html" depending on where the directives are defined).
+
If you wish to match against the hostname, port, or query string, use a
RewriteCond with the
%{HTTP_HOST}
, %{SERVER_PORT}
, or
- %{QUERY_STRING}
variables respectively. If you wish to
- match against the full URL-path in a per-directory (htaccess) RewriteRule,
- use the %{REQUEST_URI}
variable.
+ %{QUERY_STRING}
variables respectively.
+
+
+
+Per-directory Rewrites
+
+- The rewrite engine may be used in .htaccess files in Directory sections, with some additional
+complexity.
+
+- To enable the rewrite engine in this context, you need to set
+"
RewriteEngine On
" and
+"Options FollowSymLinks
" must be enabled. If your
+administrator has disabled override of FollowSymLinks
for
+a user's directory, then you cannot use the rewrite engine. This
+restriction is required for security reasons.
+- When using the rewrite engine in
.htaccess
files the
+per-directory prefix (which always is the same for a specific
+directory) is automatically removed for the RewriteRule pattern matching
+and automatically added after any relative (not starting with a
+slash or protocol name) substitution encounters the end of a rule set.
+See the RewriteBase
+directive for more information regarding what prefix will be added back to
+relative substutions.
+
+- If you wish to match against the full URL-path in a per-directory
+(htaccess) RewriteRule, use the
%{REQUEST_URI}
variable in
+a RewriteCond.
+
+- The removed prefix always ends with a slash, meaning the matching occurs against a string which
+never has a leading slash. Therefore, A Pattern with
^/
never
+matches in per-directory context.
+
+- Although rewrite rules are syntactically permitted in Location and Files sections, this
+should never be necessary and is unsupported.
+
For some hints on regular
@@ -1171,44 +1206,6 @@ flag is used on the .htaccess files. To enable the
-rewrite engine for these files you need to set
-"RewriteEngine On
" and
-"Options FollowSymLinks
" must be enabled. If your
-administrator has disabled override of FollowSymLinks
for
-a user's directory, then you cannot use the rewrite engine. This
-restriction is required for security reasons.
-
-When using the rewrite engine in .htaccess
files the
-per-directory prefix (which always is the same for a specific
-directory) is automatically removed for the pattern matching
-and automatically added after the substitution has been
-done. This feature is essential for many sorts of rewriting; without
-this, you would always have to match the parent directory, which is
-not always possible. There is one exception: If a substitution string
-starts with http://
, then the directory prefix will
-not be added, and an external redirect (or proxy
-throughput, if using flag P) is forced. See the
-RewriteBase directive for
-more information.
-
-The rewrite engine may also be used in Directory sections with the same
-prefix-matching rules as would be applied to .htaccess
-files. It is usually simpler, however, to avoid the prefix substitution
-complication by putting the rewrite rules in the main server or
-virtual host context, rather than in a Directory section.
-
-Although rewrite rules are syntactically permitted in Location and Files sections, this
-should never be necessary and is unsupported.
-
-
Here are all possible substitution combinations and their
meanings: