叹息......好吧,我已经在这几个小时了。这是我所拥有的:
Centos 6.3
WHM (cPanel) 11.34.1
Apache 2.2
Subversion + mod_dav_svn
如果您不知道,请注意 WHM (cPanel) 管理 httpd.conf 并会在需要时覆盖它。我们可以使用包含 .conf 文件,这些文件会在 httpd.conf 期间的某些点被包含在内
使用帐户“Website.com”我登录到它的 cPanel 并创建了一个子域“server.website.com”。服务器上的用户位置是/home/websitecom,子域位置是/home/websitecom/server。
我在这里有颠覆存储库:/svn/repos/rp1 等。我将其添加到我的 conf
<Location /svn/repo1>
DAV svn
SVNPath /svn/repos/rp1
</Location>
极好的!效果很好但是,位置 /svn/repo1 在服务器上的所有主机上都可用,因为该<location>
指令正在读取服务器范围内的 REQUEST_URI。
我想要的只是将<location>
指令限制为 server.website.com 域......!!!这有那么难吗?
在我正在使用的 WHM 中pre_virtualhost_global.conf
(在虚拟主机声明之前包含在内)并且我尝试过:
<directory /home/websitecom/server>
<location /svn/repo1>
DAV svn
SVNPath /svn/repos/rp1
</location>
</directory>
我明白了"location is not allowed here"
我努力了:
<location /svn/repo1>
Require host server.website.com
DAV svn
SVNPath /svn/repos/rp1
</location>
我明白了couldn't perform authentication. AuthType not set!
我努力了
<virtualhost server.website.com:80>
<location /svn/repo1>
DAV svn
SVNPath /svn/repos/rp1
</location>
</virtualhost>
没有警告,service httpd restart
但它只是不起作用
请让我知道如何实现<location>
特定于主机......我想要实现的是:
<location /svn/repo1>
HOST www.example.com
</location>
在共享命名主机环境中
更新
我也试过.htaccess:
<location /svn/repo1>
DAV svn
SVNPath /svn/repos/rp1
</location>
错误 500 服务器错误“此处不允许位置”
更新
我已经更正了 Auth 用法:
AuthType Basic
Require host server.website.com
AuthName "Repository Authentication"
AuthUserFile /svn/repos/rp1.htpasswd
Require valid-user
密码验证有效,但 Require host server.website.com 似乎没有做任何事情!?