我在同一台服务器上有一堆项目。该服务器托管SVN回购和实际的Web项目。我想有这样的结构:另一个“svn:Repository永久移动请重新定位”问题
project1.server.com - with doc root to /var/www/html/project1/public
project2.server.com - with doc root to /var/www/html/project2/public
project3.server.com - with doc root to /var/www/html/project3/public
并能够与此网址
svn.server.com/project1 - with repo root at /var/www/svn/project1/
svn.server.com/project2 - with repo root at /var/www/svn/project2/
svn.server.com/project3 - with repo root at /var/www/svn/project3/
我目前CONFIGS访问每一个SVN回购是:
<VirtualHost *:80>
ServerName project1.server.com
DocumentRoot "/var/www/html/project1/public"
RewriteEngine off
<Location />
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !\.(js|ico|gif|jpg|png|css)$ /index.php
</Location>
</VirtualHost>
# ... similar <VirtualHost> tags here for the other web subdomains
<VirtualHost *:80>
ServerName svn.server.com
<Location />
Deny from all
</Location>
<Location /project1>
Allow from all
AuthType Basic
AuthUserFile /etc/svn-auth-conf
Require valid-user
DAV svn
SVNPath /var/www/svn/project1
AuthName "Project 1 - Development Repository"
AuthzSVNAccessFile /etc/svn-acl-conf
</Location>
# ... similar <Location> tags for the other repos
</VirtualHost>
如果我改变DocumentRoots到/ var/www/html/project1-site/public之类的东西不一样,所以我很确定发生了什么是this:
也有可能您的web根目录中的对象与您的存储库URL具有相同的名称。例如,假设您的Web服务器的文档根目录是/ var/www,并且您的Subversion存储库位于/ home/svn/repo。然后,您将Apache配置为在http://server.com/myrepo处提供存储库。如果您然后创建目录/ var/www/myrepo /这将导致301错误发生。
但我真的想保持像上面显示的目录结构。我该怎么做才能使它工作?我想要这样做,因为它是我可以提出的更整洁的结构。所以想法也被接受!
好主意。但这会使客户端连接稍微复杂一些。我仍然不确定为什么'http:// project.server.com'和'http:// svn.server.com/project'是两个不可区分的请求。 – Mauro
我更喜欢为了清楚而更改端口,但如果这不是一个选项,您可以更改域(冒号前的部分)。例如。 ''和''。如果你需要更多的细节,这里的apache文档是[here](http://httpd.apache.org/docs/2.0/mod/core.html#virtualhost)。 –
pieman72