您的位置:首页 > 理论基础 > 计算机网络

利用SVNListParentPath增加http浏览仓库根目录的功能

2006-04-17 20:42 375 查看
使用SVNParentPath的时候,直接访问ParentPath的时候,总是得到以下错误提示:

403Forbidden

Forbidden

Youdon'thavepermissiontoaccess/svn/onthisserver.

下面的办法可以搞定它:

一、首先,Subversion1.3及以后版本支持SVNListParentPathON,之前的版本只能使用PHP自己做。

二、Location设置中最后要加上/,应该是<Location/svn/>而不是<Location/svn>否则可能不能访问。

三、通过“http://localhost/svn/”来访问仓库列表,如果想让“http://localhost/svn”也起作用的话,需要在</Location>的后面增加重定向的设置:RedirectMatch^(/svn)$$1/ ,当然也可以采用RewriteEngine之类的办法。

四、修改后的httpd.conf的对应部分如下:

<Location/svn/>
   DAVsvn
   SVNListParentPathon
   SVNParentPathe:/svn
#   SSLRequireSSL                 #指定该目录只能通过SSL操作
#   SVNPathAuthzoff

   AuthzSVNAccessFilee:/ca/access/file
   
   #tryanonymousaccessfirst,resorttoreal
   #authenticationifnecessary.
   #SatisfyAny
   Requirevalid-user
   
   #howtoauthenticateauser
   AuthTypeBasic
   AuthName"服务器需要身份验证:"
#   AuthUserFilee:/ca/access/svn-auth-file

  AuthMySQLHostlocalhost
  AuthMySQLUserBugfree
  AuthMySQLPasswordmandarin
  AuthMySQLDBBugFree
  AuthMySQLUserTableBugUser
  AuthMySQLNameFieldUserName
  AuthMySQLPasswordFieldUserPassword
#  AuthMySQLMD5PasswordsOn
  AuthMySQLPwEncryptionmd5
  
</Location>

RedirectMatch^(/svn)$$1/

五、如果使用Subversion1.3以前的版本,或需要定制列表显示的话,可以自己写php脚本来控制仓库列表的显示,TotoiseSVN的帮助文件中有详细描述:


Savethelinesabovetoafile
svn_index.php
andstorethatfileinyourwebrootfolder.NextyouhavetotellApachetoshowthatpageinsteadoftheerror:

Uncomment(removethe'#'char)fromthefollowinglineinyourApacheconfigfile:



Addthefollowinglinesjustbelowyour<Location>blockwhereyoudefineyourSubversionstuff:



六、URL重写的若干非mod_rewrite方法

原文出处:http://www.chinaunix.net作者:HonestQiao 发表于:2005-09-2323:40:16


1、Alias:重写到本地路径
可以使用Alias把一个指定的Url重写到某一固定的本地路径
Alias/test//home/www/test/
那么对http://..../test/将对应了/home/www/test/
注意:Alias必须是一一对应的,/test/将不对/test起作用。
2、AliasMatch:重写到本地路径
与Alias类似,但是可以使用正则表达式
AliasMatch^/test(.*)/home/www/test$1

3、Redirect:重写到网址
Redirect/test/http://....../test2/
4、RedirectMatch:重写到网址
与Redirect类似,但是可以使用正则表达式
Redirect/test(.*)http://....../test2$1
在不需要很复杂的URL重写时,完全可以使用以上的几条指令来进行。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息