Назад | Перейти на главную страницу

Как предоставить доступ к каталогу «/.well-known» на сервере SVN (Apache 2.2)

Я не могу понять, как отключить аутентификацию для .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 во всех клиентах.