proxy.html.en revision 3f08db06526d6901aa08c110b5bc7dde6bc39905
4733607eec54034d2083534ebff2dad89c28574eZbigniew Jędrzejewski-Szmek<?xml version="1.0" encoding="ISO-8859-1"?>
4733607eec54034d2083534ebff2dad89c28574eZbigniew Jędrzejewski-Szmek<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4733607eec54034d2083534ebff2dad89c28574eZbigniew Jędrzejewski-Szmek<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head><!--
4733607eec54034d2083534ebff2dad89c28574eZbigniew Jędrzejewski-Szmek XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
4733607eec54034d2083534ebff2dad89c28574eZbigniew Jędrzejewski-Szmek This file is generated from xml source: DO NOT EDIT
4733607eec54034d2083534ebff2dad89c28574eZbigniew Jędrzejewski-Szmek XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
4733607eec54034d2083534ebff2dad89c28574eZbigniew Jędrzejewski-Szmek -->
4733607eec54034d2083534ebff2dad89c28574eZbigniew Jędrzejewski-Szmek<title>Using mod_rewrite for Proxying - Apache HTTP Server</title>
4733607eec54034d2083534ebff2dad89c28574eZbigniew Jędrzejewski-Szmek<link href="/style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
4733607eec54034d2083534ebff2dad89c28574eZbigniew Jędrzejewski-Szmek<link href="/style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
4733607eec54034d2083534ebff2dad89c28574eZbigniew Jędrzejewski-Szmek<link href="/style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" />
4733607eec54034d2083534ebff2dad89c28574eZbigniew Jędrzejewski-Szmek<link href="/images/favicon.ico" rel="shortcut icon" /></head>
4733607eec54034d2083534ebff2dad89c28574eZbigniew Jędrzejewski-Szmek<body id="manual-page"><div id="page-header">
4733607eec54034d2083534ebff2dad89c28574eZbigniew Jędrzejewski-Szmek<p class="menu"><a href="/mod/">Modules</a> | <a href="/mod/directives.html">Directives</a> | <a href="/faq/">FAQ</a> | <a href="/glossary.html">Glossary</a> | <a href="/sitemap.html">Sitemap</a></p>
4733607eec54034d2083534ebff2dad89c28574eZbigniew Jędrzejewski-Szmek<p class="apache">Apache HTTP Server Version 2.5</p>
4733607eec54034d2083534ebff2dad89c28574eZbigniew Jędrzejewski-Szmek<img alt="" src="/images/feather.gif" /></div>
4733607eec54034d2083534ebff2dad89c28574eZbigniew Jędrzejewski-Szmek<div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="/images/left.gif" /></a></div>
4733607eec54034d2083534ebff2dad89c28574eZbigniew Jędrzejewski-Szmek<div id="path">
4733607eec54034d2083534ebff2dad89c28574eZbigniew Jędrzejewski-Szmek<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">HTTP Server</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <a href="../">Version 2.5</a> &gt; <a href="./">Rewrite</a></div><div id="page-content"><div id="preamble"><h1>Using mod_rewrite for Proxying</h1>
4733607eec54034d2083534ebff2dad89c28574eZbigniew Jędrzejewski-Szmek<div class="toplang">
4733607eec54034d2083534ebff2dad89c28574eZbigniew Jędrzejewski-Szmek<p><span>Available Languages: </span><a href="/en/rewrite/proxy.html" title="English">&nbsp;en&nbsp;</a></p>
8bb3626dac93c0157989fb87afe0212958d7dbb4Zbigniew Jędrzejewski-Szmek</div>
4733607eec54034d2083534ebff2dad89c28574eZbigniew Jędrzejewski-Szmek
4733607eec54034d2083534ebff2dad89c28574eZbigniew Jędrzejewski-Szmek
4733607eec54034d2083534ebff2dad89c28574eZbigniew Jędrzejewski-Szmek<p>This document supplements the <code class="module"><a href="/mod/mod_rewrite.html">mod_rewrite</a></code>
4733607eec54034d2083534ebff2dad89c28574eZbigniew Jędrzejewski-Szmek<a href="/mod/mod_rewrite.html">reference documentation</a>. It describes
4733607eec54034d2083534ebff2dad89c28574eZbigniew Jędrzejewski-Szmekhow to use the RewriteRule's [P] flag to proxy content to another server.
4733607eec54034d2083534ebff2dad89c28574eZbigniew Jędrzejewski-SzmekA number of recipes are provided that describe common scenarios.</p>
4733607eec54034d2083534ebff2dad89c28574eZbigniew Jędrzejewski-Szmek
4733607eec54034d2083534ebff2dad89c28574eZbigniew Jędrzejewski-Szmek</div>
4733607eec54034d2083534ebff2dad89c28574eZbigniew Jędrzejewski-Szmek<div id="quickview"><h3>See also</h3><ul class="seealso"><li><a href="/mod/mod_rewrite.html">Module documentation</a></li><li><a href="intro.html">mod_rewrite introduction</a></li><li><a href="remapping.html">Redirection and remapping</a></li><li><a href="access.html">Controlling access</a></li><li><a href="vhosts.html">Virtual hosts</a></li><li><a href="rewritemap.html">Using RewriteMap</a></li><li><a href="advanced.html">Advanced techniques</a></li><li><a href="avoid.html">When not to use mod_rewrite</a></li></ul></div>
4733607eec54034d2083534ebff2dad89c28574eZbigniew Jędrzejewski-Szmek<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
<div class="section">
<h2><a name="dynamic-proxy" id="dynamic-proxy">Proxying Content with mod_rewrite</a></h2>
<dl>
<dt>Description:</dt>
<dd>
<p>
mod_rewrite provides the [P] flag, which allows URLs to be passed,
via mod_proxy, to another server. Two examples are given here. In
one example, a URL is passed directly to another server, and served
as though it were a local URL. In the other example, we proxy
missing content to a back-end server.</p>
</dd>
<dt>Solution:</dt>
<dd>
<p>To simply map a URL to another server, we use the [P] flag, as
follows:</p>
<div class="example"><p><code>
RewriteEngine on<br />
RewriteBase /products/<br />
RewriteRule ^<strong>widget/</strong>(.*)$ <strong>http://product.example.com/widget/</strong>$1 [<strong>P</strong>]<br />
ProxyPassReverse /products/widget/ http://product.example.com/widget/
</code></p></div>
<p>In the second example, we proxy the request only if we can't find
the resource locally. This can be very useful when you're migrating
from one server to another, and you're not sure if all the content
has been migrated yet.</p>
<div class="example"><p><code>
RewriteCond %{REQUEST_FILENAME} <strong>!-f</strong><br />
RewriteCond %{REQUEST_FILENAME} <strong>!-d</strong><br />
RewriteRule ^/(.*) http://<strong>old</strong>.example.com/$1 [<strong>P</strong>]<br />
ProxyPassReverse / http://old.example.com/
</code></p></div>
</dd>
<dt>Discussion:</dt>
<dd><p>In each case, we add a <code class="directive"><a href="/mod/mod_proxy.html#proxypassreverse">ProxyPassReverse</a></code> directive to ensure
that any redirects issued by the backend are correctly passed on to
the client.</p>
<p>Consider using either <code class="directive"><a href="/mod/mod_proxy.html#proxypass">ProxyPass</a></code> or <code class="directive"><a href="/mod/mod_rewrite.html#proxypassmatch">ProxyPassMatch</a></code> whenever possible in
preference to mod_rewrite.</p>
</dd>
</dl>
</div></div>
<div class="bottomlang">
<p><span>Available Languages: </span><a href="/en/rewrite/proxy.html" title="English">&nbsp;en&nbsp;</a></p>
</div><div id="footer">
<p class="apache">Copyright 2011 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>
<p class="menu"><a href="/mod/">Modules</a> | <a href="/mod/directives.html">Directives</a> | <a href="/faq/">FAQ</a> | <a href="/glossary.html">Glossary</a> | <a href="/sitemap.html">Sitemap</a></p></div>
</body></html>