1
0
mirror of https://github.com/apache/httpd.git synced 2026-01-06 09:01:14 +03:00
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1308344 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Eric Covener
2012-04-02 13:21:11 +00:00
parent 6a00bcf74c
commit 8bef424619
2 changed files with 41 additions and 80 deletions

View File

@@ -112,40 +112,40 @@ URLs on the fly</td></tr>
<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_rewrite</td></tr>
</table>
<p>The <code class="directive">RewriteBase</code> directive explicitly
sets the base URL-path (not filesystem directory path!) for per-directory rewrites
that result in the substitution of a relative path.
When you use a <code class="directive"><a href="#rewriterule">RewriteRule</a></code>
in a <code>.htaccess</code> file, <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> strips off
the local directory prefix before processing, then rewrites the rest of
the URL. When the rewrite is completed, <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>
automatically adds the local directory prefix (or the
<code class="directive">RewriteBase</code> when set) back on to the substitution
before handing it back to the core of the server as if it were the original
URL.</p>
<p>The <code class="directive">RewriteBase</code> directive specifies the
URL prefix to be used for per-directory (htaccess)
<code class="directive">RewriteRule</code> directives that substitute a relative
path.</p>
<p> This directive is <em>required</em> when you use a relative path
in a substitution in per-directory (htaccess) context unless either
of the following conditions are true:
<ul>
<li> The original request, and the substitution, are underneath the
<code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code>
(as opposed to reachable by other means, such as
<code class="directive"><a href="../mod/mod_alias.html#alias">Alias</a></code>).</li>
<li> The <em>filesystem</em> path to the directory containing the
<code class="directive">RewriteRule</code>, suffixed by the relative
substitution is also valid as a URL path on the server
(this is rare).</li>
</ul>
</p>
<p>This directive is <em>required</em> for per-directory rewrites whose context
is a directory made available via the <code class="directive"><a href="../mod/mod_alias.html#alias">Alias</a></code>
directive, when the substitution uses a relative path.</p>
<p>If your URL path does not exist verbatim on the filesystem,
or isn't directly under your <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code>,
you must use <code class="directive">RewriteBase</code> in every
<code>.htaccess</code> file where you want to use <code class="directive"><a href="#rewriterule">RewriteRule</a></code> directives.</p>
<p>The example below demonstrates how to map
http://example.com/myapp/index.html to
/home/www/example/newsite.html, in a <code>.htaccess</code> file. This
assumes that the content available at
http://example.com/ is on disk at /home/www/example/</p>
<p> In the example below, <code class="directive">RewriteBase</code> is necessary
to avoid rewriting to http://example.com/opt/myapp-1.2.3/welcome.html
since the resource was not relative to the document root. This
misconfiguration would normally cause the server to look for an "opt"
directory under the document root.</p>
<div class="example"><pre>
DocumentRoot /var/www/example.com
Alias /myapp /opt/myapp-1.2.3
&lt;Directory /opt/myapp-1.2.3&gt;
RewriteEngine On
# The URL-path used to get to this context, not the filesystem path
RewriteBase /myapp/
RewriteRule ^index\.html$ newsite.html
RewriteRule ^index\.html$ welcome.html
&lt;/Directory&gt;
</pre></div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="RewriteCond" id="RewriteCond">RewriteCond</a> <a name="rewritecond" id="rewritecond">Directive</a></h2>

View File

@@ -31,8 +31,8 @@
</div>
<div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#synopsis">Synopsis</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#options">Options</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#output">Description of output</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#bugs">Bugs</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#output">Example Output</a></li>
</ul><h3>See also</h3><ul class="seealso"><li><code class="program"><a href="../programs/httpd.html">httpd</a></code></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
@@ -207,57 +207,7 @@
</dl>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="bugs" id="bugs">Bugs</a></h2>
<p>There are various statically declared buffers of fixed length. Combined
with the lazy parsing of the command line arguments, the response headers
from the server and other external inputs, this might bite you.</p>
<p>It does not implement HTTP/1.x fully; only accepts some 'expected' forms
of responses. The rather heavy use of <code>strstr(3)</code> shows up top
in profile, which might indicate a performance problem; <em>i.e.</em>, you
would measure the <code>ab</code> performance rather than the server's.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="output" id="output">Example Output</a></h2>
<p>Sample output is provided here.</p>
<div class="note"><pre>Server Software: Apache/2.2.17
Server Hostname: testserver.com
Server Port: 80
Document Path: /index.html
Document Length: 787 bytes
Concurrency Level: 5
Time taken for tests: 0.436 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Total transferred: 1026000 bytes
HTML transferred: 787000 bytes
Requests per second: 2292.26 [#/sec] (mean)
Time per request: 2.181 [ms] (mean)
Time per request: 0.436 [ms] (mean, across all concurrent requests)
Transfer rate: 2296.74 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 1 0.4 1 3
Processing: 1 1 0.4 1 3
Waiting: 0 1 0.5 1 2
Total: 2 2 0.1 2 3
Percentage of the requests served within a certain time (ms)
50% 2
66% 2
75% 2
80% 2
90% 2
95% 2
98% 2
99% 3
100% 3 (longest request)</pre></div>
<h2><a name="output" id="output">Description of output</a></h2>
<p>The output may vary depending on the command line parameters given.
Possible output with a brief explanation of each element is listed below.
</p>
@@ -342,6 +292,17 @@ Percentage of the requests served within a certain time (ms)
<dd>The rate of transfer as calculated by the formula
<code>totalread / 1024 / timetaken</code></dd>
</dl>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="bugs" id="bugs">Bugs</a></h2>
<p>There are various statically declared buffers of fixed length. Combined
with the lazy parsing of the command line arguments, the response headers
from the server and other external inputs, this might bite you.</p>
<p>It does not implement HTTP/1.x fully; only accepts some 'expected' forms
of responses. The rather heavy use of <code>strstr(3)</code> shows up top
in profile, which might indicate a performance problem; <em>i.e.</em>, you
would measure the <code>ab</code> performance rather than the server's.</p>
</div></div>
<div class="bottomlang">
<p><span>Available Languages: </span><a href="../en/programs/ab.html" title="English">&nbsp;en&nbsp;</a> |