このスレッドは解決済です(未解決に戻す場合はこちら)
<<戻る

WebDAVでファイル名に&文字を含む場合のトラブル このメッセージに返信する
日時: 2010/05/21 00:41
名前: maya
URL:
はじめまして、お世話になります。

こちらのサイト http://centossrv.com/webdav.shtml の手順どおりにWebDAVを設定し、Windows側でWebフォルダの設定するところまでは問題なくできました。

ただ、ファイル名に「&」が含まれている場合、Webフォルダではファイル名の&以降が表示されずに欠けてしまい、正常にアクセスできないというトラブルが起きています。

※「foo & bar.txt」というファイルをWebフォルダで開くと「foo 」というファイルになってしまい、リネームも削除もできません。(Sambaからは正常に表示・アクセスできます)

検索してみるとescape_ampパッチというのがあったのですが、Apache 2.0.45向けの情報と古いことだったことや、肝心のパッチの当て方が分からないため行き詰ってしまいました。
http://webdav.todo.gr.jp/download/

解決方法またはescape_ampパッチの当て方が分かる方がいらっしゃいましたら、ご返答をお願いいたします。


Apacheのバージョンは2.2.3で、/var/log/httpd/error_log にログは出力されておりません。

/etc/httpd/conf.d/webdav.conf の内容は下記の通りです。
Alias /webdav /mnt/share/webdav
<Directory "/mnt/share/webdav">
AllowOverride None
</Directory>
<Location "/webdav">
DAV On
SSLRequireSSL
Options Indexes
AuthType Basic
AuthName WebDAV
AuthUserFile /etc/httpd/conf/.htpasswd
IndexOptions charset=utf-8
Require user hoge
</Location>

お手数をおかけいたしますが、よろしくお願いします。
記事編集 編集
Re: WebDAVでファイル名に&文字を含む場合のトラブル このメッセージに返信する
日時: 2010/05/22 06:37
名前: ウルグ
URL:
&って制御文字だから、無理じゃないの?そもそも、UTF-8であればなおさら…
EUCじゃないと無理
記事編集 編集
Re: WebDAVでファイル名に&文字を含む場合のトラブル このメッセージに返信する
日時: 2010/05/22 23:46
名前: maya
URL:
ウルグさん、ご返答ありがとうございます。

その後調べていたら、Apache2.2.3用のパッチをみつけることができました。
http://sourceforge.jp/projects/webdav/releases/30761/note

パッチの内容をみたところ、mod_davが「&」文字を「&amp;」に変換している事が今回のトラブルの原因で、
これをURLエンコードの「%26」に修正しているようです。

これで解決するならUTF-8でもいけると思うので、もう少しやってみたいと思います。
記事編集 編集
Re: WebDAVでファイル名に&文字を含む場合のトラブル このメッセージに返信する
日時: 2010/06/13 20:45
名前: maya
URL:
下記の方法で一応解決することができました。

1. httpd-2.2.3.tar.gzを公式サイトより入手し、>>2のパッチを当てる。
2. configureで--prefixを指定し、apacheを別のディレクトリにインストールする。
3. 新しくインストールしてできたmod_dav.soを、既存のもの(/etc/httpd/modules/mod_dav.so)に上書きする。
4. apacheを再起動する。
5. prefixで指定したディレクトリを削除。

yumでhttpdを一旦削除してから改めてインストールしなおした方が良いとは思ったのですが、
cactiも削除されてしまい、再設定に不安があったためこのような形になりました。
記事編集 編集
Re: WebDAVでファイル名に&文字を含む場合のトラブル このメッセージに返信する
日時: 2010/06/13 22:46
名前: よっしー
URL: https://takao-y.net/~takao/fsiki/wiki.cgi
こんばんは、お世話になります。

mayaさん>
yumでパッケージを削除するのは依存関係で場合によっては
OS必須のパッケージまでごっそり削除されてしまうので非常に
危険です(過去にLinux触りたての頃、私もPythonをyumで
削除してOSが起動不可になった苦い経験があります・・・。)。

由って、httpdのみを削除したいなら

rpm -e (場合によっては--nodepsオプションを付ける) httpd

の方が宜しいかと・・・。(^^;)

宜しくお願い致します。

以上
記事編集 編集
件名※必須
名前※必須
URL
任意のパスワード (投稿後のコメント修正・削除時に使用)
画像認証※必須 投稿キー(画像で表示されている数字を入力)
コメント※必須

※質問を投稿後に自己解決された場合は、原因と行った対処を具体的に書き込み下さるよう、よろしくお願いします。

- WEB PATIO -