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

VirtualHost с SVN + HTML

Мы предоставляем репозиторий SVN под svn.example.org. Теперь мы хотим добавить сертификат Let's Encrypt для этого домена - однако сейчас есть проблема. Let's Encrypt проверяет домен, помещая файл в подпапку этого виртуального хоста (например, /.well-known/acme-challenge/…). Let's Encrypt не может проверить этот файл, поскольку Apache обслуживает репозиторий SVN под svn.example.org.

Теперь вопрос в том, можно ли настроить Apache так, чтобы определенные URL-адреса не обслуживались репозиторием SVN? В настоящее время конфигурация vhost выглядит примерно так:

DocumentRoot /var/www/vhosts/svn.example.org/
<Location />
    DAV svn
    SVNParentPath /var/www/vhosts/svn.example.org/httpdocs/
    AuthType Basic
    AuthName "SVN"
    AuthUserFile /auth/svn.passwd
    Require valid-user
</Location>

Я не знаю, что мне делать, поэтому просьба svn.example.org/.well-known/… Apache обслуживает иначе.

Я знаю, что это должен быть комментарий, но у меня недостаточно репутации (пока). У вас настроена другая веб-страница? Если да, то простой Alias /.well-known/acme-challenge/ /path/to/your/challenge/directory должен сделать свое дело.

Обновить: на самом деле это не работает, см. комментарий ниже.


Теперь он работает, с комбинацией комментария @Stephan и RegEx, чтобы исключить .well-known путь для SVN (https://regex101.com/r/h8kDEc/1):

DocumentRoot /var/www/vhosts/svn.example.org/
Alias /.well-known/ /var/www/vhosts/svn.example.org/httpdocs/.well-known/
<LocationMatch ^/(?!\.well-known).*>
    DAV svn
    SVNParentPath /var/www/vhosts/svn.example.org/httpdocs/
    AuthType Basic
    AuthName "SVN"
    AuthUserFile /auth/svn.passwd
    Require valid-user
</LocationMatch>