Я не могу понять, как отключить аутентификацию для .well-known
каталог.
Когда я удаляю специфические директивы SVN (DAV, SVNPath, AuthzSVNAccessFile), все ведет себя должным образом.
<VirtualHost *:443>
ServerName www.example.com
DocumentRoot "C:/www.example.com"
ServerAdmin admin@example.com
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
. К сожалению, сейчас я не могу легко это изменить.
Вы можете проверить apache Directory
вариант. Сильфон - это пример конфигурации:
<Directory /home/html/.well-known/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
в вашем веб-корне создайте файл .htaccess
со следующим содержанием:
Options +Indexes
<IfModule mod_rewrite.c>
RewriteRule "/\.|^\.(?!well-known/)" - [F]
</IfModule>
Вам необходимо включить Mod_Rewrite, чтобы это работало.
Просто к сведению: в конце концов я решил укусить пулю и изменить путь к моему репозиторию svn на https://svn.domain.com/repo (вместо использования рута).
После стольких сложностей с различными системами и фреймворками я решил следовать этому шаблону практически для всех размещенных приложений, а именно всегда использовать
например https://subdomain.domain.com/context
Это оставляет открытыми все варианты в будущем для введения балансировки нагрузки, нескольких приложений в одном домене, нескольких приложений на одном сервере и т. Д. И конфигурации обычно работают, потому что не будет никаких перекрывающихся путей.
Конечно, было больно переключать путь репо svn во всех клиентах.