我们在svn.example.org下提供一个SVN仓库。 现在我们要为该域添加一个Let's Encrypt证书 – 但现在有一个问题。 让我们encryption通过将文件放入该虚拟主机的子文件夹(例如/.well-known/acme-challenge/… )来validation域。 让我们encryption无法validation该文件,因为Apache正在svn.example.org下提供SVN仓库。
现在的问题是,是否可以configurationApache,以便某些URL不被SVN存储库提供? 目前vhostconfiguration看起来类似于这样的:
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服务不同。
我知道这应该是一个评论,但我没有足够的声誉(还)。 你有其他的网页configuration吗? 如果是的话,一个简单的Alias /.well-known/acme-challenge/ /path/to/your/challenge/directory应该能够做到这一点。
更新:这实际上不工作,请参阅下面的评论。
通过组合使用@Stephan的评论和RegEx来排除SVN的.well-knownpath( 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>