使用WebSVN作为默认的HTML视图

当使用普通的浏览器打开像https://server.local/svn/reproname这样的Subversion URL时,我得到一个(不是很好但很有用)的网页,显示了版本库最高版本的文件。

是否有可能改变这个HTML视图来使用WebSVN呢? 所以我想为TortoiseSVN使用相同的URL,然后使用WebDAV浏览存储库,并使用浏览器获取WebSVN的漂亮界面。

我正在使用mod_dav_svn在Win 2003 Server上使用Apache 2.2。

在此先感谢您的帮助。

sc911

怎么使用mod_rewrite? 你可以做这样的事情:

RewriteCond %{HTTP_USER_AGENT} !^SVN.* RewriteRule ^/svn/(.*?)(/.*)$ http://websvn.host/websvn/listing.php?repname=$1&path=$2 [R] 

这应该将没有以'SVN /'开头的用户代理string的客户端redirect到http://websvn.host/websvn/上的WebSVN安装,并且仅从SVN客户端留下查询。

我也试图让它像这样工作,但我不认为这是可能的。 根据这个网站,mod_dav_svn生成你看到的html页面,它只支持使用xslt简单的皮肤。

我所做的是为我的WebSVN内容使用一个新的虚拟主机(例如https://websvn.server.local/svn/reponame )。

按照Andy的build议,用mod_rewrite解决它。 我现在正在使用这套规则

 RewriteEngine On RewriteCond %{HTTP_USER_AGENT} ^SVN.* RewriteRule (.*) - [S=3] RewriteRule ^svn$ /svn/ [R,N] RewriteRule ^svn/$ /websvn/ [R,L] RewriteRule ^svn/(.*?)(/.*)$ /websvn/listing.php?repname=$1&path=$2 [R,L] 

这将检查用户代理以SVN开始(这是Tortoise标识的方式),然后跳过下面三条规则。

这三条规则是这样做的:

  • 添加结尾的斜杠到svn-URL(没有自动完成,因为svn是没有目录)
  • 将直接访问redirect到资源库列表
  • redirect直接存储库视图

所有这些都在RootDir的<Directory> -directive中完成。

感谢安迪的这个提示!

sc911