本モジュールには
FTP プロキシリクエストを扱うためには、
安全なサーバにするまでプロキシ機能は有効にしないでください。 オープンプロキシサーバはあなた自身のネットワークにとっても、 インターネット全体にとっても危険です。
おそらく、プロキシの mime.types 設定ファイルでそのファイルタイプを
application/octet-stream として定義していないのでしょう。
以下の行が便利でしょう。
application/octet-stream bin dms lha lzh exe class tgz taz
デフォルトで全てをバイナリにするのもいいかもしれません:
DefaultType application/octet-stream
稀に、特定のファイルを FTP の ASCII 転送モードでダウンロードしなければ
ならない場合があります (なお、デフォルトの転送モードは binary です)。
この場合、リクエストの末尾に ;type=a を加えることで
現状、 mod_proxy は FTP の GET のみサポートしています。 もちろん、 Apache プロキシで HTTP アップロード (POST または PUT) はできます。
FTP の URI はログイン中のユーザのホームディレクトリの相対パスとして
解釈されます。より上位のディレクトリに行くために /../ を使っても無駄です。
と言うのも、ドットふたつはブラウザが解釈するだけで、実際に FTP サーバには
送られないからです。この問題に対して、 Apache の FTP プロキシは
いわゆる Squid %2f hack を実装しています;
Squid Proxy Cache などの
他の有名なプロキシサーバも採用している解決方法です。
リクエストのパスの先頭に /%2f をつけると、これらのプロキシ
は FTP のディレクトリを / 開始にします (ホームディレクトリではなく)。
例えば、/etc/motd ファイルを取得するには、次の URL を
使えばよいでしょう:
FTP サーバにユーザ名とパスワードを使ってログインするために、 Apache は異なる戦略を使います。 URL にユーザ名もパスワードも無ければ、 Apache は FTP サーバに匿名 (anonymous) ログインしようとします。 例
匿名アクセスを設定したすべての有名な FTP サーバでこれは動作します。
特定のユーザ名でログインするために、 URL に次のようにユーザ名を埋め込めます:
FTP サーバがこのユーザ名に対してパスワードを求めると (そうあるべきです) 、
Apache は 401 (Authorization required) レスポンスを返します。
これによりブラウザはユーザ名とパスワードを求めるダイアログ画面をポップアップします。
パスワードを入力すると、もう一度接続しなおし、認証が成功すると、
要求していたリソースが現れます。このやりとりの利点は、ブラウザがパスワードを
そのまま表示しないことです。もし最初に次の URL を使っていると
パスワードがそのまま見えてしまいます。
このように送信するパスワードはネットワーク上は暗号化されません。 ブラウザと Apache プロキシサーバの間は base64 エンコードした生パスワードで、 Apache プロキシサーバと FTP サーバの間はプレインテキストです。 このため、 HTTP 経由で FTP サーバにアクセスする時 (とにかく FTP で個人的な ファイルにアクセスする時 ) 、倍の慎重さが求められます。 安全でないネットワークを使っている場合、経路上でパスワードを盗み取られる 可能性があります。