.well-known
ディレクトリの認証を無効にする方法がわかりません。
SVN固有のディレクティブ(DAV、SVNPath、AuthzSVNAccessFile)を削除すると、期待どおりに動作します。
<VirtualHost *:443>
ServerName www.example.com
DocumentRoot "C:/www.example.com"
ServerAdmin [email protected]
SSLEngine On
SSLCertificateFile "C:/Apache2/conf/ssl/www.example.com.crt"
SSLCertificateKeyFile "C:/Apache2/conf/ssl/www.example.com.key"
<Location />
DAV svn
SVNPath "C:/svnrepo"
SSLRequireSSL
AuthName "www.example.com"
AuthType Basic
AuthUserFile "conf/svn/svn-users.txt"
AuthGroupFile "conf/svn/svn-groups.txt"
AuthzSVNAccessFile "conf/svn/svn-access.txt"
Require valid-user
</Location>
<Location "/.well-known">
Satisfy Any
Allow from all
Require all granted
# Apache 2.4 only
#AuthType None
</Location>
</VirtualHost>
編集:パスが重複していない場合にも機能します。例えば。 /svn
および/.well-known
を使用します。残念ながら、これは簡単に変更できるものではありません。
ウェブルートで、次の内容のファイル.htaccess
を作成します。
Options +Indexes
<IfModule mod_rewrite.c>
RewriteRule "/\.|^\.(?!well-known/)" - [F]
</IfModule>
これを機能させるには、ModRewriteを有効にする必要があります。
Apache Directory
オプションを確認できます。以下は設定例です:
<Directory /home/html/.well-known/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
ただお知らせ:私は最終的に弾丸を噛み、私のsvn repoへのパスを https://svn.domain.com/repo に変更することにしました(ルートを使用する代わりに)。
さまざまなシステムやフレームワークでの多くの複雑化の後、私はほとんどすべてのホストされたアプリケーションに対してこのパターンに従うこと、つまり常に使用することにしました
例えば https://subdomain.domain.com/context
これにより、将来、負荷分散、同じドメインの下の複数のアプリケーション、同じサーバー上の複数のアプリケーションなどを導入するためのすべてのオプションが開かれます。また、重複するパスがないため、構成は通常機能します。
もちろん、すべてのクライアントでsvn repoパスを切り替えるのは大変でした。