.htaccess HTTPD Conf <location>和<virtualhost> </virtualhost> </location>

时间:2013-03-01 09:17:35

标签: .htaccess apache2 centos cpanel httpd.conf

叹息......好吧,我已经在这几个小时了。这就是我所拥有的:

Centos 6.3
WHM (cPanel) 11.34.1
Apache 2.2
Subversion + mod_dav_svn

如果您不知道,请注意WHM(cPanel)管理httpd.conf并在需要时覆盖它。在httpd.conf

期间,我们可以使用包含在某些点的.conf文件

使用帐户&#34; Website.com&#34;我登录了它的cPanel并创建了一个子域&#34; server.website.com&#34;。服务器上的用户位置是/ home / websitecom,子域位置是/ home / websitecom / server。

我在这里有subversion存储库:/ 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服务器错误&#34;此处不允许位置&#34;

更新

我已更正Auth使用情况:

AuthType Basic
Require host server.website.com
AuthName "Repository Authentication"
AuthUserFile /svn/repos/rp1.htpasswd
Require valid-user

密码验证有效,但要求主机server.website.com似乎没有做任何事情!

1 个答案:

答案 0 :(得分:0)

HA !!!

我在httpd.conf

中找到了这个
# To customize this VirtualHost use an include file at the following location
Include "/usr/local/apache/conf/userdata/std/2/--USER--/--HOST--/*.conf"

所以我在“/usr/local/apache/conf/userdata/std/2/--USER--/--HOST--/svn.conf”中创建了一个文件,内容:

<location /svn/repo1>
    DAV svn
    SVNPath /svn/repos/rp1
</location>

这在cPanel WHM的上下文中解决了这个问题,但是在基本的centos apache服务器上,我仍然想知道是否

<virtualhost server.website.com:80>
    <location /svn/repo1>
        DAV svn
        SVNPath /svn/repos/rp1
    </location>
</virtualhost>

还能用吗?无论如何,目前对我来说不是问题......