Apacheでサブドメインからリポジトリへの変換を設定しようとしています。例:
foobars.domain.com -> /server/svnrepos/foobars
私はこれをmod_rewriteで実行しようとしました:
RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC]
RewriteCond %{HTTP_HOST} ^(www\.)?([^.]+)\.domain\.com$ [NC]
RewriteRule ^/svn(.*) /svn/%2$1 [PT]
ただし、これにより基本的なsvn操作で問題が発生します。「チェックアウト」はこのきれいなことを引き起こします:
$ svn co http://foobars.domain.com/svn
svn: '/svn/foobars/!svn/vcc/default' path not found
サーバーのセットアップ(私のマシン、OSなど)に関して制限はありません。この翻訳をApacheで処理する方法はありますか?大量の仮想ホストを見てきましたが、概念をDAVの場所に拡張する方法がわかりません(VirtualSvnPathがあればいいのに...)。mod_dav_svnが、1)svnリポジトリパスを明示的に定義するか、2)親を定義するように強制する方法は、非常に制限されています。
おそらく、「SVNSpecialURI」はいくつかの有用性があるかもしれませんが、それに関するドキュメントは見つかりません...
私の最終的な目標がサブドメインをSVNPathにマップすることであると仮定すると、私のオプションは何ですか?
参照としての私の現在のconf:
<VirtualHost *:80 *:443>
ServerAdmin admin@domain.com
DocumentRoot "/server/www"
ServerName domain.com
ServerAlias *.domain.com www.domain.com domain.com
ErrorLog logs/domain-error_log
CustomLog logs/domain-access_log common
DirectorySlash Off
RewriteLogLevel 9
RewriteLog /server/log/apache-rewrite.log
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC]
RewriteCond %{HTTP_HOST} ^(www\.)?([^.]+)\.domain\.com$ [NC]
RewriteRule ^/svn$ /svn/ [QSA]
RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC]
RewriteCond %{HTTP_HOST} ^(www\.)?([^.]+)\.domain\.com$ [NC]
RewriteRule ^/svn(.*) /svn/%2$1 [PT]
<Location /svn>
DAV svn
SVNParentPath /server/svn
</Location>