10705fbc225dcf590c9ba24a4f04de221358060arbowen<?xml version="1.0" encoding="ISO-8859-1"?>
10705fbc225dcf590c9ba24a4f04de221358060arbowen<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
fd9abdda70912b99b24e3bf1a38f26fde908a74cnd<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head>
fd9abdda70912b99b24e3bf1a38f26fde908a74cnd<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" />
fd9abdda70912b99b24e3bf1a38f26fde908a74cnd<!--
10705fbc225dcf590c9ba24a4f04de221358060arbowen XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
10705fbc225dcf590c9ba24a4f04de221358060arbowen This file is generated from xml source: DO NOT EDIT
10705fbc225dcf590c9ba24a4f04de221358060arbowen XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
10705fbc225dcf590c9ba24a4f04de221358060arbowen -->
96ad5d81ee4a2cc66a4ae19893efc8aa6d06fae7jailletc<title>Using mod_rewrite for Proxying - Apache HTTP Server Version 2.5</title>
10705fbc225dcf590c9ba24a4f04de221358060arbowen<link href="/style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
10705fbc225dcf590c9ba24a4f04de221358060arbowen<link href="/style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
d29d9ab4614ff992b0e8de6e2b88d52b6f1f153erbowen<link href="/style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="/style/css/prettify.css" />
2e545ce2450a9953665f701bb05350f0d3f26275nd<script src="/style/scripts/prettify.min.js" type="text/javascript">
d29d9ab4614ff992b0e8de6e2b88d52b6f1f153erbowen</script>
d29d9ab4614ff992b0e8de6e2b88d52b6f1f153erbowen
10705fbc225dcf590c9ba24a4f04de221358060arbowen<link href="/images/favicon.ico" rel="shortcut icon" /></head>
10705fbc225dcf590c9ba24a4f04de221358060arbowen<body id="manual-page"><div id="page-header">
af33a4994ae2ff15bc67d19ff1a7feb906745bf8rbowen<p class="menu"><a href="/mod/">Modules</a> | <a href="/mod/quickreference.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="/glossary.html">Glossary</a> | <a href="/sitemap.html">Sitemap</a></p>
3f08db06526d6901aa08c110b5bc7dde6bc39905nd<p class="apache">Apache HTTP Server Version 2.5</p>
10705fbc225dcf590c9ba24a4f04de221358060arbowen<img alt="" src="/images/feather.gif" /></div>
10705fbc225dcf590c9ba24a4f04de221358060arbowen<div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="/images/left.gif" /></a></div>
10705fbc225dcf590c9ba24a4f04de221358060arbowen<div id="path">
3f08db06526d6901aa08c110b5bc7dde6bc39905nd<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>
10705fbc225dcf590c9ba24a4f04de221358060arbowen<div class="toplang">
f086b4b402fa9a2fefc7dda85de2a3cc1cd0a654rjung<p><span>Available Languages: </span><a href="/en/rewrite/proxy.html" title="English">&nbsp;en&nbsp;</a></p>
10705fbc225dcf590c9ba24a4f04de221358060arbowen</div>
10705fbc225dcf590c9ba24a4f04de221358060arbowen
10705fbc225dcf590c9ba24a4f04de221358060arbowen
9a58dc6a2b26ec128b1270cf48810e705f1a90dbsf<p>This document supplements the <code class="module"><a href="/mod/mod_rewrite.html">mod_rewrite</a></code>
10705fbc225dcf590c9ba24a4f04de221358060arbowen<a href="/mod/mod_rewrite.html">reference documentation</a>. It describes
10705fbc225dcf590c9ba24a4f04de221358060arbowenhow to use the RewriteRule's [P] flag to proxy content to another server.
10705fbc225dcf590c9ba24a4f04de221358060arbowenA number of recipes are provided that describe common scenarios.</p>
10705fbc225dcf590c9ba24a4f04de221358060arbowen
10705fbc225dcf590c9ba24a4f04de221358060arbowen</div>
3cfb051391f3d6aa28a25ca3feb81e841242f9d5humbedooh<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><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
10705fbc225dcf590c9ba24a4f04de221358060arbowen<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
10705fbc225dcf590c9ba24a4f04de221358060arbowen<div class="section">
10705fbc225dcf590c9ba24a4f04de221358060arbowen<h2><a name="dynamic-proxy" id="dynamic-proxy">Proxying Content with mod_rewrite</a></h2>
10705fbc225dcf590c9ba24a4f04de221358060arbowen
10705fbc225dcf590c9ba24a4f04de221358060arbowen
10705fbc225dcf590c9ba24a4f04de221358060arbowen
10705fbc225dcf590c9ba24a4f04de221358060arbowen <dl>
10705fbc225dcf590c9ba24a4f04de221358060arbowen <dt>Description:</dt>
10705fbc225dcf590c9ba24a4f04de221358060arbowen
10705fbc225dcf590c9ba24a4f04de221358060arbowen <dd>
10705fbc225dcf590c9ba24a4f04de221358060arbowen <p>
10705fbc225dcf590c9ba24a4f04de221358060arbowen mod_rewrite provides the [P] flag, which allows URLs to be passed,
10705fbc225dcf590c9ba24a4f04de221358060arbowen via mod_proxy, to another server. Two examples are given here. In
10705fbc225dcf590c9ba24a4f04de221358060arbowen one example, a URL is passed directly to another server, and served
10705fbc225dcf590c9ba24a4f04de221358060arbowen as though it were a local URL. In the other example, we proxy
10705fbc225dcf590c9ba24a4f04de221358060arbowen missing content to a back-end server.</p>
10705fbc225dcf590c9ba24a4f04de221358060arbowen </dd>
10705fbc225dcf590c9ba24a4f04de221358060arbowen
10705fbc225dcf590c9ba24a4f04de221358060arbowen <dt>Solution:</dt>
10705fbc225dcf590c9ba24a4f04de221358060arbowen
10705fbc225dcf590c9ba24a4f04de221358060arbowen <dd>
10705fbc225dcf590c9ba24a4f04de221358060arbowen <p>To simply map a URL to another server, we use the [P] flag, as
10705fbc225dcf590c9ba24a4f04de221358060arbowen follows:</p>
10705fbc225dcf590c9ba24a4f04de221358060arbowen
4aa603e6448b99f9371397d439795c91a93637eand<pre class="prettyprint lang-config">RewriteEngine on
5d01f40ffd657dd2ac567aacd93cabd162ddfa79coarRewriteBase "/products/"
5d01f40ffd657dd2ac567aacd93cabd162ddfa79coarRewriteRule "^widget/(.*)$" "http://product.example.com/widget/$1" [P]
2fae9d127f7143fabe8f73958eb9bde31df17d41coarProxyPassReverse "/products/widget/" "http://product.example.com/widget/"</pre>
488228a03efe42d9f0b03334a4753ce79a6dc5cchumbedooh
10705fbc225dcf590c9ba24a4f04de221358060arbowen
10705fbc225dcf590c9ba24a4f04de221358060arbowen <p>In the second example, we proxy the request only if we can't find
10705fbc225dcf590c9ba24a4f04de221358060arbowen the resource locally. This can be very useful when you're migrating
10705fbc225dcf590c9ba24a4f04de221358060arbowen from one server to another, and you're not sure if all the content
10705fbc225dcf590c9ba24a4f04de221358060arbowen has been migrated yet.</p>
10705fbc225dcf590c9ba24a4f04de221358060arbowen
5d01f40ffd657dd2ac567aacd93cabd162ddfa79coar<pre class="prettyprint lang-config">RewriteCond "%{REQUEST_FILENAME}" !-f
5d01f40ffd657dd2ac567aacd93cabd162ddfa79coarRewriteCond "%{REQUEST_FILENAME}" !-d
5d01f40ffd657dd2ac567aacd93cabd162ddfa79coarRewriteRule "^/(.*)" "http://old.example.com/$1" [P]
2fae9d127f7143fabe8f73958eb9bde31df17d41coarProxyPassReverse "/" "http://old.example.com/"</pre>
488228a03efe42d9f0b03334a4753ce79a6dc5cchumbedooh
10705fbc225dcf590c9ba24a4f04de221358060arbowen </dd>
10705fbc225dcf590c9ba24a4f04de221358060arbowen
10705fbc225dcf590c9ba24a4f04de221358060arbowen <dt>Discussion:</dt>
10705fbc225dcf590c9ba24a4f04de221358060arbowen
10705fbc225dcf590c9ba24a4f04de221358060arbowen <dd><p>In each case, we add a <code class="directive"><a href="/mod/mod_proxy.html#proxypassreverse">ProxyPassReverse</a></code> directive to ensure
10705fbc225dcf590c9ba24a4f04de221358060arbowen that any redirects issued by the backend are correctly passed on to
10705fbc225dcf590c9ba24a4f04de221358060arbowen the client.</p>
9a58dc6a2b26ec128b1270cf48810e705f1a90dbsf
b22bd3d35ab7faf81ca4889acc42e7ce678074c1rbowen <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_proxy.html#proxypassmatch">ProxyPassMatch</a></code> whenever possible in
10705fbc225dcf590c9ba24a4f04de221358060arbowen preference to mod_rewrite.</p>
10705fbc225dcf590c9ba24a4f04de221358060arbowen </dd>
10705fbc225dcf590c9ba24a4f04de221358060arbowen </dl>
10705fbc225dcf590c9ba24a4f04de221358060arbowen
10705fbc225dcf590c9ba24a4f04de221358060arbowen</div></div>
10705fbc225dcf590c9ba24a4f04de221358060arbowen<div class="bottomlang">
f086b4b402fa9a2fefc7dda85de2a3cc1cd0a654rjung<p><span>Available Languages: </span><a href="/en/rewrite/proxy.html" title="English">&nbsp;en&nbsp;</a></p>
ed62c84ee0911cfebbd8da319ac00757b555707chumbedooh</div><div class="top"><a href="#page-header"><img src="/images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Comments</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&amp;A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
0d0ba3a410038e179b695446bb149cce6264e0abnd<script type="text/javascript"><!--//--><![CDATA[//><!--
ed62c84ee0911cfebbd8da319ac00757b555707chumbedoohvar comments_shortname = 'httpd';
cc7e1025de9ac63bd4db6fe7f71c158b2cf09fe4humbedoohvar comments_identifier = 'http://httpd.apache.org/docs/trunk/rewrite/proxy.html';
0d0ba3a410038e179b695446bb149cce6264e0abnd(function(w, d) {
cc7e1025de9ac63bd4db6fe7f71c158b2cf09fe4humbedooh if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
ed62c84ee0911cfebbd8da319ac00757b555707chumbedooh d.write('<div id="comments_thread"><\/div>');
0d0ba3a410038e179b695446bb149cce6264e0abnd var s = d.createElement('script');
0d0ba3a410038e179b695446bb149cce6264e0abnd s.type = 'text/javascript';
0d0ba3a410038e179b695446bb149cce6264e0abnd s.async = true;
ac082aefa89416cbdc9a1836eaf3bed9698201c8humbedooh s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
0d0ba3a410038e179b695446bb149cce6264e0abnd (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
0d0ba3a410038e179b695446bb149cce6264e0abnd }
0d0ba3a410038e179b695446bb149cce6264e0abnd else {
ed62c84ee0911cfebbd8da319ac00757b555707chumbedooh d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
0d0ba3a410038e179b695446bb149cce6264e0abnd }
0d0ba3a410038e179b695446bb149cce6264e0abnd})(window, document);
6dfd50de0ccc3b37ff6eee76bbe7f0a51211a534humbedooh//--><!]]></script></div><div id="footer">
205f749042ed530040a4f0080dbcb47ceae8a374rjung<p class="apache">Copyright 2015 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>
af33a4994ae2ff15bc67d19ff1a7feb906745bf8rbowen<p class="menu"><a href="/mod/">Modules</a> | <a href="/mod/quickreference.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="/glossary.html">Glossary</a> | <a href="/sitemap.html">Sitemap</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
0d0ba3a410038e179b695446bb149cce6264e0abndif (typeof(prettyPrint) !== 'undefined') {
7fec19672a491661b2fe4b29f685bc7f4efa64d4nd prettyPrint();
7fec19672a491661b2fe4b29f685bc7f4efa64d4nd}
7fec19672a491661b2fe4b29f685bc7f4efa64d4nd//--><!]]></script>
10705fbc225dcf590c9ba24a4f04de221358060arbowen</body></html>