我在EC2实例上有2个svn回购。
它们位于/ebs/svn/repo1 & /ebs/svn/repo2 。
我创build了一个域别名svn.mydomain.com ,指向上面的父目录( /ebs/svn )。
我想要使用以下URL格式访问每个上述回购:
svn.mydomain.com/repo1
svn.mydomain.com/repo2
当然,我有repo1与下面的vhostsconfiguration工作。
<VirtualHost *:80> ServerName svn.mydomain.com ServerAlias svn.mydomain.com ErrorLog /var/www/html/log/svn.mydomain.com-log <Location "/" > DAV svn SVNPath /ebs/svn/repo1 AuthType Basic AuthName "SVN - Private - Repos" AuthUserFile /ebs/svn/login/svn-auth-conf Require valid-user </Location> </VirtualHost>
问题是,我只能通过上面的vhostsconfiguration访问repo1 。
我想用以下格式访问这两个回购:
svn.mydomain.com/repo1
svn.mydomain.com/repo2
我需要改变什么来访问我的svn回购的目录?
因为你已经设置了SVNPath指令,所以你已经“硬编码”了path:
SVNPath /ebs/svn/repo1
请尝试使用SVNParentPath指令来configuration将容纳所有存储库的“顶部”目录。 用这个replace上面的行:
SVNParentPath /ebs/svn/
如果您想允许用户查看所有可用存储库的列表(如果他们只是转到svn.mydomain.com ,则还应该添加以下行:
SVNListParentPath on
这将允许列出所有的存储库。 否则, svn.mydomain.com将显示“禁止”页面,而不是存储库列表。
总而言之,下面是一个完整的位置块示例:
‹Location "/"› DAV svn SVNParentPath /ebs/svn/ SVNListParentPath On SSLRequireSSL AuthType Basic AuthName "svn ebs" AuthUserFile conf/svnpasswd Require valid-user ‹/Location›
我做了什么:(由@Oldskool回答)
<VirtualHost *:80> ServerName svn.mydomain.com ServerAlias svn.mydomain.com ErrorLog /var/www/html/log/svn.mydomain.com-log <Location "/" > DAV svn # Delete SVNPath! SVNParentPath /ebs/svn/ # add this! SVNListParentPath on #Lists all the repos!! coool stuff! :D AuthType Basic AuthName "Private - Repos" AuthUserFile /ebs/svn/login/svn-auth-conf Require valid-user </Location> </VirtualHost>
谢谢@Oldskool!
旧的方式
这是我发现的一种老方法,但是对于多个存储库,您将不得不添加多个标签。 (使用上面的@ oldSkool的答案,效果更好!) (注意<Location "/repo1"> ,所以基本上,为每个回购添加一个新的位置。
<VirtualHost *:80> ServerName svn.mydomain.com ServerAlias svn.mydomain.com ErrorLog /var/www/html/log/svn.mydomain.com-log <Location "/repo1" > DAV svn SVNPath /ebs/svn/repo1 AuthType Basic AuthName "Private - Repo1" AuthUserFile /ebs/svn/login/svn-auth-conf Require valid-user </Location> <Location "/repo2" > DAV svn SVNPath /ebs/svn/repo2 AuthType Basic AuthName "Private - Repo2" AuthUserFile /ebs/svn/login/svn-auth-conf Require valid-user </Location> </VirtualHost>