我已经阅读了 stackoveflow 上“看似”相似的所有其他主题,但找不到解决方案。
当我在本地网络中发出命令时,svn co ip/svn/repo
一切正常。
但有时我确实会在远程服务器上进行检查,因此我需要使用 dyndns 设置域。我很久以前就设置了 apache 来支持此功能,但之前从未见过此错误。
如果我这么做:
svn info https://svn.idev.ge/gamoicanies/
它给了我错误:Repository moved permanently to 'https://svn.idev.ge/gamoicanies/'; please relocate
但如果我这么做:
svn info https://svn.idev.ge/gamoicanies/logo
它运行良好。
所以我的问题是我无法签出存储库的根目录。但我可以很好地处理子目录。
我的仓库的目录结构如下:
/var/svn/repo1
/var/svn/repo2
我的子域名 svn.idev.ge 直接转到 /svn/ 目录。我猜想这就是我所有问题的根源。有没有办法修复我的 apache 配置以维护子域名,而无需添加额外的无用 svn 目录,例如https://svn.idev.ge/svn/gamoicanies/并且可以结账吗?
Apache 文件如下所示:
<VirtualHost *:80>
ServerName svn.idev.ge
ServerAlias www.svn.idev.ge
Redirect permanent / https://svn.idev.ge/
</VirtualHost>
<VirtualHost *:443>
ServerAdmin [email protected]
ServerName svn.idev.ge
ServerAlias www.svn.idev.ge
DocumentRoot /var/svn/
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/server.crt
SSLCertificateKeyFile /etc/apache2/ssl/server.key
<Directory />
Order allow,deny
allow from all
</Directory>
<Location />
DAV svn
SVNParentPath /var/svn/
SVNListParentPath On
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/apache2/passwords
Require valid-user
AuthzSVNAccessFile /var/svn/svnusers.conf
</Location>
</VirtualHost>
请注意,这非常令人沮丧。
答案1
您没有将其DocumentRoot
用于任何用途,只需将其更改为不是 SVN 目录父级的其他内容,或将其完全删除,并改用服务器的默认设置(可能是/var/www/
或/var/www/html
)。目录重叠是导致问题的原因。
顺便说一下,这个区块:
<Directory />
Order allow,deny
allow from all
</Directory>
..可能不是您想要做的;在文件系统根目录上放置允许是没有必要的,并且可能存在严重的安全问题。
将您的Order
和Allow
指令放在<Location />
块内。