当使用普通的浏览器打开像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标识的方式),然后跳过下面三条规则。
这三条规则是这样做的:
所有这些都在RootDir的<Directory> -directive中完成。
感谢安迪的这个提示!
sc911