Subversion の WebDAV ではまる点


Subversion の WebDAV で以前もはまったけどまた性懲りもなくはまってしまったのでメモします。

理由は調べていないのでなぜかはわかりませんが, mod_dav_svn で WebDAV をしようとすると, DocumentRoot からの相対パスとウェブサーバー上でのルートからの URI が一致するときに 301 リダイレクトが発生してしまいます。例えば次のような場合です。

DocumentRoot /var/repos

	
		DAV svn
		SVNParentPath /var/repos
	

/var/repos/hoge というリポジトリは DocumentRoot /var/repos から見て /hoge です。一方サーバーで見ると / がリポジトリの親ディレクトリと指定してあるのでやはり /hoge です。両者が一致しているので 301 リダイレクトが発生してしまいます。

これを解決するには DocumentRoot もしくは Location を変更してサーバー上での位置を変更するのが最も簡単です。 URI が微妙になったり,ローカルとの不整合が気になってしまいます。ちなみに Location を変更する場合はローカルに合わせて mod_rewrite を使いたくなるところですが,結局リダイレクトなので意味がありません (ウェブブラウザから閲覧するだけならそこまで問題ありませんが)。