[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[webdav-jp:0484] mod_proxy による WebDAV の Proxy



しろやまです。


apache + mod_dav を用いた WebDAVの共有を、外部からアクセス
したくて DMZ にある apache に Proxy をさせて公開することを考え
ました。

dav側
  RedHatLinux7.2
  apache1.3.26
  mod_dav1.0.3
  mod_encoding-20020611a

設定(該当部分を抜粋)
------------------------------------------
    DAVLockDB /var/www/lock/DAVlock
    Header         add MS-Authro-Via "DAV"
    EncodingEngine on
    SetServerEncoding     UTF-8
    DefaultClientEncoding JA-AUTO-SJIS-MS SJIS
    AddClientEncoding "cadaver/" EUC-JP
    <Location /share >
        DAV on
    </Location>
------------------------------------------

proxy側
  RedHatLinux7.3
  apache1.3.26
  mod_proxy(上記に付属のもの)

設定(該当部分を抜粋)
------------------------------------------
    ProxyPass     /dav http://davserver_host_name/share
    NoCache       *

    <Directory proxy:http://davserver_host_name/share>
        Order allow,deny
        allow from all
    </Directory>
------------------------------------------


上記で概ねうまく動いているのですが、クライアント(Windows2000)
から http://proxy_server/dav/ でアクセスすると、何故か「/share」
というフォルダが余計に表示されます。

そしてその余計に表示された「/share」をアクセスすると、「予期しな
いエラーが発生しました。現在の操作を完了することができません」
というエラーが表示されます。

どうも Depth: 1 でPROPFIND メソッドを送りつけたときに「指定した
コレクションの直下のリソースおよびコレクション そのもの」のプロ
パティが帰ってくるのが、ProxyによってURLが少々異なってしまう
ため、その「コレクションそのもの」を「直下にあるもの」と誤認して
しまう模様です。

Mac OS Xを利用した場合も、「/share」は表示されませんでしたが
「?」という謎なフォルダがやはり余計に表示されておりました。


ためしにちょっと davサーバ側をいじって Depth: 1 の時に「コレク
ションの直下のリソースのみを返す」ようにすると「/share」や「?」の
ような余計なフォルダが表示されなくなったので、おそらくそういう
事かと思われます。


これは、既知の問題でしょうか? それとも、私の Proxy の設定が
悪いだけでしょうか?


---
SHIROYAMA Takayuki