github.com/krum110487/go-htaccess@v0.0.0-20240316004156-60641c8e7598/tests/data/apache_2_2_34/manual/mod/mod_proxy_ftp.html.en (about) 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 <meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" /> 5 <!-- 6 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 7 This file is generated from xml source: DO NOT EDIT 8 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 9 --> 10 <title>mod_proxy_ftp - Apache HTTP Server Version 2.2</title> 11 <link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" /> 12 <link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" /> 13 <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" /> 14 <script src="../style/scripts/prettify.min.js" type="text/javascript"> 15 </script> 16 17 <link href="../images/favicon.ico" rel="shortcut icon" /><link href="http://httpd.apache.org/docs/current/mod/mod_proxy_ftp.html" rel="canonical" /></head> 18 <body> 19 <div id="page-header"> 20 <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.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> 21 <p class="apache">Apache HTTP Server Version 2.2</p> 22 <img alt="" src="../images/feather.gif" /></div> 23 <div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div> 24 <div id="path"> 25 <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> 26 <div id="page-content"> 27 <div class="retired"><h4>Please note</h4> 28 <p> This document refers to a legacy release (<strong>2.2</strong>) of Apache httpd. The active release (<strong>2.4</strong>) is documented <a href="http://httpd.apache.org/docs/current">here</a>. If you have not already upgraded, please follow <a href="http://httpd.apache.org/docs/current/upgrading.html">this link</a> for more information.</p> 29 <p>You may follow <a href="http://httpd.apache.org/docs/current/mod/mod_proxy_ftp.html">this link</a> to go to the current version of this document.</p></div><div id="preamble"><h1>Apache Module mod_proxy_ftp</h1> 30 <div class="toplang"> 31 <p><span>Available Languages: </span><a href="../en/mod/mod_proxy_ftp.html" title="English"> en </a> | 32 <a href="../ja/mod/mod_proxy_ftp.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a></p> 33 </div> 34 <table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>FTP support module for 35 <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code></td></tr> 36 <tr><th><a href="module-dict.html#Status">Status:</a></th><td>Extension</td></tr> 37 <tr><th><a href="module-dict.html#ModuleIdentifier">Module Identifier:</a></th><td>proxy_ftp_module</td></tr> 38 <tr><th><a href="module-dict.html#SourceFile">Source File:</a></th><td>mod_proxy_ftp.c</td></tr></table> 39 <h3>Summary</h3> 40 41 <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 42 FTP sites. Note that FTP support is currently limited to 43 the GET method.</p> 44 45 <p>Thus, in order to get the ability of handling FTP proxy requests, 46 <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> 47 have to be present in the server.</p> 48 49 <div class="warning"><h3>Warning</h3> 50 <p>Do not enable proxying until you have <a href="mod_proxy.html#access">secured your server</a>. Open proxy 51 servers are dangerous both to your network and to the Internet at 52 large.</p> 53 </div> 54 </div> 55 <div id="quickview"><h3>Topics</h3> 56 <ul id="topics"> 57 <li><img alt="" src="../images/down.gif" /> <a href="#mimetypes">Why doesn't file type <var>xxx</var> 58 download via FTP?</a></li> 59 <li><img alt="" src="../images/down.gif" /> <a href="#type">How can I force an FTP ASCII download of 60 File <var>xxx</var>?</a></li> 61 <li><img alt="" src="../images/down.gif" /> <a href="#ftpnonget">How can I do FTP upload?</a></li> 62 <li><img alt="" src="../images/down.gif" /> <a href="#percent2fhck">How can I access FTP files outside 63 of my home directory?</a></li> 64 <li><img alt="" src="../images/down.gif" /> <a href="#ftppass">How can I hide the FTP cleartext password 65 in my browser's URL line?</a></li> 66 </ul><h3 class="directives">Directives</h3> 67 <p>This module provides no 68 directives.</p> 69 <h3>See also</h3> 70 <ul class="seealso"> 71 <li><code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code></li> 72 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> 73 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> 74 <div class="section"> 75 <h2><a name="mimetypes" id="mimetypes">Why doesn't file type <var>xxx</var> 76 download via FTP?</a></h2> 77 <p>You probably don't have that particular file type defined as 78 <code>application/octet-stream</code> in your proxy's mime.types 79 configuration file. A useful line can be</p> 80 81 <div class="example"><pre>application/octet-stream bin dms lha lzh exe class tgz taz</pre></div> 82 <p>Alternatively you may prefer to default everything to binary:</p> 83 <div class="example"><pre>DefaultType application/octet-stream</pre></div> 84 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> 85 <div class="section"> 86 <h2><a name="type" id="type">How can I force an FTP ASCII download of 87 File <var>xxx</var>?</a></h2> 88 <p>In the rare situation where you must download a specific file using the 89 FTP <code>ASCII</code> transfer method (while the default transfer is in 90 <code>binary</code> mode), you can override <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code>'s 91 default by suffixing the request with <code>;type=a</code> to force an 92 ASCII transfer. (FTP Directory listings are always executed in ASCII mode, 93 however.)</p> 94 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> 95 <div class="section"> 96 <h2><a name="ftpnonget" id="ftpnonget">How can I do FTP upload?</a></h2> 97 <p>Currently, only GET is supported for FTP in mod_proxy. You can 98 of course use HTTP upload (POST or PUT) through an Apache proxy.</p> 99 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> 100 <div class="section"> 101 <h2><a name="percent2fhck" id="percent2fhck">How can I access FTP files outside 102 of my home directory?</a></h2> 103 <p>An FTP URI is interpreted relative to the home directory of the user 104 who is logging in. Alas, to reach higher directory levels you cannot 105 use /../, as the dots are interpreted by the browser and not actually 106 sent to the FTP server. To address this problem, the so called <dfn>Squid 107 %2f hack</dfn> was implemented in the Apache FTP proxy; it is a 108 solution which is also used by other popular proxy servers like the <a href="http://www.squid-cache.org/">Squid Proxy Cache</a>. By 109 prepending <code>/%2f</code> to the path of your request, you can make 110 such a proxy change the FTP starting directory to <code>/</code> (instead 111 of the home directory). For example, to retrieve the file 112 <code>/etc/motd</code>, you would use the URL:</p> 113 114 <div class="example"><p><code> 115 ftp://<var>user</var>@<var>host</var>/%2f/etc/motd 116 </code></p></div> 117 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> 118 <div class="section"> 119 <h2><a name="ftppass" id="ftppass">How can I hide the FTP cleartext password 120 in my browser's URL line?</a></h2> 121 <p>To log in to an FTP server by username and password, Apache uses 122 different strategies. In absense of a user name and password in the URL 123 altogether, Apache sends an anonymous login to the FTP server, 124 <em>i.e.</em>,</p> 125 126 <div class="example"><p><code> 127 user: anonymous<br /> 128 password: apache_proxy@ 129 </code></p></div> 130 131 <p>This works for all popular FTP servers which are configured for 132 anonymous access.</p> 133 134 <p>For a personal login with a specific username, you can embed the user 135 name into the URL, like in:</p> 136 137 <div class="example"><p><code> 138 ftp://<var>username</var>@<var>host</var>/myfile 139 </code></p></div> 140 141 <p>If the FTP server asks for a password when given this username (which 142 it should), then Apache will reply with a <code>401</code> (Authorization 143 required) response, which causes the Browser to pop up the 144 username/password dialog. Upon entering the password, the connection 145 attempt is retried, and if successful, the requested resource is 146 presented. The advantage of this procedure is that your browser does not 147 display the password in cleartext (which it would if you had used</p> 148 149 <div class="example"><p><code> 150 ftp://<var>username</var>:<var>password</var>@<var>host</var>/myfile 151 </code></p></div> 152 153 <p>in the first place).</p> 154 155 <div class="note"><h3>Note</h3> 156 <p>The password which is transmitted in such a way is not encrypted on 157 its way. It travels between your browser and the Apache proxy server in 158 a base64-encoded cleartext string, and between the Apache proxy and the 159 FTP server as plaintext. You should therefore think twice before 160 accessing your FTP server via HTTP (or before accessing your personal 161 files via FTP at all!) When using insecure channels, an eavesdropper 162 might intercept your password on its way.</p> 163 </div> 164 </div> 165 </div> 166 <div class="bottomlang"> 167 <p><span>Available Languages: </span><a href="../en/mod/mod_proxy_ftp.html" title="English"> en </a> | 168 <a href="../ja/mod/mod_proxy_ftp.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a></p> 169 </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&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> 170 <script type="text/javascript"><!--//--><![CDATA[//><!-- 171 var comments_shortname = 'httpd'; 172 var comments_identifier = 'http://httpd.apache.org/docs/2.2/mod/mod_proxy_ftp.html'; 173 (function(w, d) { 174 if (w.location.hostname.toLowerCase() == "httpd.apache.org") { 175 d.write('<div id="comments_thread"><\/div>'); 176 var s = d.createElement('script'); 177 s.type = 'text/javascript'; 178 s.async = true; 179 s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier; 180 (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s); 181 } 182 else { 183 d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>'); 184 } 185 })(window, document); 186 //--><!]]></script></div><div id="footer"> 187 <p class="apache">Copyright 2017 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> 188 <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.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[//><!-- 189 if (typeof(prettyPrint) !== 'undefined') { 190 prettyPrint(); 191 } 192 //--><!]]></script> 193 </body></html>