1
<?xml version="1.0" encoding="ISO-8859-1"?>
2
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head><!--
4
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
5
This file is generated from xml source: DO NOT EDIT
6
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
8
<title>mod_proxy_ftp - Apache HTTP Server</title>
9
<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
10
<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
11
<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" />
12
<link href="../images/favicon.ico" rel="shortcut icon" /></head>
14
<div id="page-header">
15
<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>
16
<p class="apache">Apache HTTP Server Version 2.2</p>
17
<img alt="" src="../images/feather.gif" /></div>
18
<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div>
20
<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Server</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.2</a> > <a href="./">Modules</a></div>
21
<div id="page-content">
22
<div id="preamble"><h1>Apache Module mod_proxy_ftp</h1>
24
<p><span>Available Languages: </span><a href="../en/mod/mod_proxy_ftp.html" title="English"> en </a></p>
26
<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>FTP support module for
27
<code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code></td></tr>
28
<tr><th><a href="module-dict.html#Status">Status:</a></th><td>Extension</td></tr>
29
<tr><th><a href="module-dict.html#ModuleIdentifier">Module�Identifier:</a></th><td>proxy_ftp_module</td></tr>
30
<tr><th><a href="module-dict.html#SourceFile">Source�File:</a></th><td>proxy_ftp.c</td></tr></table>
33
<p>This module <em>requires</em> the service of <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code>. It provides support for the proxying
34
FTP sites. Note that FTP support is currently limited to
37
<p>Thus, in order to get the ability of handling FTP proxy requests,
38
<code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> and <code class="module"><a href="../mod/mod_proxy_ftp.html">mod_proxy_ftp</a></code>
39
have to be present in the server.</p>
41
<div class="warning"><h3>Warning</h3>
42
<p>Do not enable proxying until you have <a href="mod_proxy.html#access">secured your server</a>. Open proxy
43
servers are dangerous both to your network and to the Internet at
47
<div id="quickview"><h3 class="directives">Directives</h3>
48
<p>This module provides no
52
<li><img alt="" src="../images/down.gif" /> <a href="#mimetypes">Why doesn't file type <var>xxx</var>
53
download via FTP?</a></li>
54
<li><img alt="" src="../images/down.gif" /> <a href="#type">How can I force an FTP ASCII download of
55
File <var>xxx</var>?</a></li>
56
<li><img alt="" src="../images/down.gif" /> <a href="#ftpnonget">How can I do FTP upload?</a></li>
57
<li><img alt="" src="../images/down.gif" /> <a href="#percent2fhck">How can I access FTP files outside
58
of my home directory?</a></li>
59
<li><img alt="" src="../images/down.gif" /> <a href="#ftppass">How can I hide the FTP cleartext password
60
in my browser's URL line?</a></li>
61
</ul><h3>See also</h3>
63
<li><code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code></li>
65
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
67
<h2><a name="mimetypes" id="mimetypes">Why doesn't file type <var>xxx</var>
68
download via FTP?</a></h2>
69
<p>You probably don't have that particular file type defined as
70
<code>application/octet-stream</code> in your proxy's mime.types
71
configuration file. A useful line can be</p>
73
<div class="example"><pre>application/octet-stream bin dms lha lzh exe class tgz taz</pre></div>
74
<p>Alternatively you may prefer to default everything to binary:</p>
75
<div class="example"><pre>DefaultType application/octet-stream</pre></div>
76
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
78
<h2><a name="type" id="type">How can I force an FTP ASCII download of
79
File <var>xxx</var>?</a></h2>
80
<p>In the rare situation where you must download a specific file using the
81
FTP <code>ASCII</code> transfer method (while the default transfer is in
82
<code>binary</code> mode), you can override <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code>'s
83
default by suffixing the request with <code>;type=a</code> to force an
84
ASCII transfer. (FTP Directory listings are always executed in ASCII mode,
86
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
88
<h2><a name="ftpnonget" id="ftpnonget">How can I do FTP upload?</a></h2>
89
<p>Currently, only GET is supported for FTP in mod_proxy. You can
90
of course use HTTP upload (POST or PUT) through an Apache proxy.</p>
91
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
93
<h2><a name="percent2fhck" id="percent2fhck">How can I access FTP files outside
94
of my home directory?</a></h2>
95
<p>An FTP URI is interpreted relative to the home directory of the user
96
who is logging in. Alas, to reach higher directory levels you cannot
97
use /../, as the dots are interpreted by the browser and not actually
98
sent to the FTP server. To address this problem, the so called <dfn>Squid
99
%2f hack</dfn> was implemented in the Apache FTP proxy; it is a
100
solution which is also used by other popular proxy servers like the <a href="http://www.squid-cache.org/">Squid Proxy Cache</a>. By
101
prepending <code>/%2f</code> to the path of your request, you can make
102
such a proxy change the FTP starting directory to <code>/</code> (instead
103
of the home directory). For example, to retrieve the file
104
<code>/etc/motd</code>, you would use the URL:</p>
106
<div class="example"><p><code>
107
ftp://<var>user</var>@<var>host</var>/%2f/etc/motd
109
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
110
<div class="section">
111
<h2><a name="ftppass" id="ftppass">How can I hide the FTP cleartext password
112
in my browser's URL line?</a></h2>
113
<p>To log in to an FTP server by username and password, Apache uses
114
different strategies. In absense of a user name and password in the URL
115
altogether, Apache sends an anonymous login to the FTP server,
118
<div class="example"><p><code>
119
user: anonymous<br />
120
password: apache_proxy@
123
<p>This works for all popular FTP servers which are configured for
124
anonymous access.</p>
126
<p>For a personal login with a specific username, you can embed the user
127
name into the URL, like in:</p>
129
<div class="example"><p><code>
130
ftp://<var>username</var>@<var>host</var>/myfile
133
<p>If the FTP server asks for a password when given this username (which
134
it should), then Apache will reply with a <code>401</code> (Authorization
135
required) response, which causes the Browser to pop up the
136
username/password dialog. Upon entering the password, the connection
137
attempt is retried, and if successful, the requested resource is
138
presented. The advantage of this procedure is that your browser does not
139
display the password in cleartext (which it would if you had used</p>
141
<div class="example"><p><code>
142
ftp://<var>username</var>:<var>password</var>@<var>host</var>/myfile
145
<p>in the first place).</p>
147
<div class="note"><h3>Note</h3>
148
<p>The password which is transmitted in such a way is not encrypted on
149
its way. It travels between your browser and the Apache proxy server in
150
a base64-encoded cleartext string, and between the Apache proxy and the
151
FTP server as plaintext. You should therefore think twice before
152
accessing your FTP server via HTTP (or before accessing your personal
153
files via FTP at all!) When using unsecure channels, an eavesdropper
154
might intercept your password on its way.</p>
158
<div class="bottomlang">
159
<p><span>Available Languages: </span><a href="../en/mod/mod_proxy_ftp.html" title="English"> en </a></p>
160
</div><div id="footer">
161
<p class="apache">Copyright 2006 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>
162
<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>
b'\\ No newline at end of file'