WebDAVの困ったトラブル


No such file or directory: Cannot create collection; intermediate collection does not exist.

WEBDAVを使っていてこのエラーがでると管理者として泣けます。

すでにWebDAVを使っていて、それと同一設定、同一権限、同一階層にあるフォルダでもダメなら

WebDAVへのアクセスをするフォルダに対して、
* RewriteEngine Off
を明示的に指定してみてください。

これでいまのところ解決しなかったことはありません。
ん?WordPressとどう関係があるって?

WordPressのテーマやプラグインフォルダへの直接アクセス手段

  1. FTPS
  2. SFTP
  3. Samba (Windowsファイル共有)
  4. WebDAV

などがあります。FTPは除外します(パスワードがインターネット上で盗聴可能なため)それぞれ暗号化されているわけですが、「1」「2」は複数によるアップロードができません。だれかが同名のファイルをアップロードして上書きしてしまうと、前の情報が消えてしまうためです。ですので一旦ダウンロードして書き換えてアップロードとなります。これは面倒です…
「3」「4」については、直接サーバーのファイルやフォルダをパソコン内部のファイルやフォルダを扱うのと同等に使えるので、従って気兼ねなくファイルを直接編集できます。だれかが編集していたらファイルがロックされているのでそのあたりも安心でしょう。ただ便利な反面、セキュリティ対策も大変です。IPアドレス制限はそれなりに使えますが、出来ない場合もあります。そしてSamba(Windowsファイル共有)を外部からアクセスできるのは、心臓に悪いことです(いろいろと通信に穴をあけなければならないため、セキュリティ・ホールに繋がる)。従ってHTTPプロトコルを使う(つまりウェブにアクセスできればよい)WebDAVを使われることも多いかもしれませんが、ここでも非暗号(BASIC認証)、ID/パスワードだけ暗号(Digest認証)、全暗号(SSL暗号)とその方式を正しく選択せねばなりません。それで、、、ってダメだ、そんなの語っていたら本題から外れた…とっともかく、

  • 同一設定、同一権限、同一階層のフォルダにしていてもWebDAV通信の場合、ファイルやフォルダを書き込めないことがある

そう、困るのです。

原因

多くのサイトで口をそろえていっているのは、
* 「.htaccess」設定がおかしい、特にRewrite設定をしているとダメだからこれを消せば良い
というものです。
はい、実際にこのRewriteEngineが有効になっているとWebDAVによる通信について書き込めないエラーがでます。

WordPressでパーマネント設定するとRewrite設定が必要だよ!

SEO対策でパーマネント設定をすることは、もう常識的になってますよね。
するとWordPress君は、.htaccessにRewrite設定を書いてくださいます。おおっ便利!
でもそうするとWebDAVが使えないよ(ReadOnly状態になる)!
さぁどうする!?

対策

パーマネント設定をしないという選択肢もありますが、ここではそれは選択肢に入れることはできないという前提とします。
また同時にWebDAV以外の選択肢もダメだという状況下にあるとします。

こうなると対策にはウェブサーバーの管理権限が必要です。

  1. 「.htaccess」をWordPressから書き込めないようにロックする(オーナー権限をrootにする等)
  2. WordPressのパーマネント設定については、.htaccessからは削除(無効)にし、ウェブサーバー設定に直接書き込む(Apacheなら、httpd.confに直接書く等)
  3. WebDAVへのアクセスフォルダに対して「RewriteEngine Off」を明記する

WordPressとWebDAVの共存

まずアクセスするURLをわけてください。トラブル回避のためと、Rewrite対策のためです。
例)http://example.com/hogehoge(ウェブサイト)、http://example.com/hogege/hogehoge(WebDAVアクセス専用)
とかして、http://example.com/hogege/hogehoge だけにRewriteEngine Offを設定するってことです。

最後に

RewriteEngine Onにして、RewriteCondでルール制限をしたら(http://example.com/hogehogeだけにRewriteRuleが適応されるように)いけるんじゃない?という疑問はあります。
そうかもしれませんが、そこまで検証はしてません….おおちょうど昼になったので時間切れ、、昼からは別の仕事が、、、、
あっ、最後にWordPressフォルダを丸々アクセスさせちゃだめですよ〜、wp-contentのthemes (テーマ限定)とか、編集目的ごとにアクセスできるフォルダも制限しちゃうのがよいと思います。

2014年2月3日 木谷

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中