2013-03-01 3 views
1

Вздох ... хорошо, я был в этом часами. Вот что у меня есть:.htaccess HTTPD Conf <location> и <virtualhost>

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/репо/rp1 и т.д. Я добавляю это в мой конф

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

Fantastic! работает хорошо НО, местоположение/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> 

I получить 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 Ошибка сервера "Место здесь не допускается"

UPDATE

я исправил использование Auth:

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

пароль аутентификации работы , но require host server.website.com, похоже, ничего не делает !?

ответ

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/местные/Apache/CONF// станд пользовательских данных/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> 

По-прежнему будет работать! Во всяком случае, не проблема для меня на данный момент ...

Смежные вопросы