Пересылка поддоменов Apache VirtualHost в сценарий Mercurial cgi - PullRequest
0 голосов
/ 15 января 2012

Мне нужно подключить мой cgi-скрипт Mercurial Server через поддомен Apache VirtualHost вместе с авторизацией.

Мой Apache работает на 80 и 91. Apache обслуживает Mercurial через

C: \ WAMP \ Bin \ Apache \ Apache2.2.21 \ CGI-BIN \ hgweb.cgi и доступен через

http://my.com/cgi-bin/hgweb.cgi а также http://localhost/cgi-bin/hgweb.cgi

Все хорошо, это прекрасно служит там. Моя цель состоит в том, чтобы субдомен это как:

http://hg.my.com/

без конечного cgi-bin / hgweb.cgi

Я получил следующий URL для работы с конфигурацией, указанной ниже:

http://hg.my.com/cgi-bin/hgweb.cgi

... но он не имеет доступа к CSS и изображениям должным образом (в отличие от превосходного сервиса)

Мой конфиг на данный момент:

ScriptAlias /hg "/cgi-bin/hgweb.cgi"
<VirtualHost *:80>
ServerName hg.my.com
ServerAlias hg.my.com

#ScriptAlias / "/cgi-bin/hgweb.cgi"
#  <Directory />
#   Order Deny,Allow
#   Allow from all
#  </Directory>

#        ProxyPass /stylesheets !
#        ProxyPass /javascripts !
#        ProxyPass /images !

ProxyPassMatch ^.*/static(/.*\.css)$ http://localhost:91/cgi-bin/hgweb.cgi/static/$1
ProxyPassMatch ^.*/static(/.*\.js)$ http://localhost:91/cgi-bin/hgweb.cgi/static/$1
ProxyPassMatch ^.*/static(/.*\.png)$ http://localhost:91/cgi-bin/hgweb.cgi/static/$1
ProxyPassMatch ^.*/static(/.*\.gif)$ http://localhost:91/cgi-bin/hgweb.cgi/static/$1

ProxyPreserveHost On
ProxyPass / http://localhost:91/cgi-bin/hgweb.cgi
ProxyPassReverse / http://localhost:91/cgi-bin/hgweb.cgi
<Proxy *>
  #DirectoryIndex hgweb.cgi
    #ScriptAlias / /hgweb.cgi
# #  Order Allow,Deny
# #  Allow from all
    Order Deny,Allow
    Allow from 127.0.0.1
    AuthUserFile C:\wamp\.htpasswd
    AuthName "Please Log In"
    AuthType Basic

    require user admin
    require user dev

 </Proxy>
</VirtualHost>

Очевидно, что я использую проверенный временем метод google-trial-and-error и мне здесь не до глубины души.

Таким образом, мое энергетическое эго, бездумное определение самообеспеченности, которое в других отношениях, кажется, служит так хорошо, теперь истощено и заполнено враждебностью к рассматриваемой проблеме - приводит меня сюда, со шляпой в руке, чтобы спросить:

«Брат, ты можешь сэкономить ни копейки?»

Ответы [ 2 ]

1 голос
/ 24 августа 2013

Просто поставьте косую черту после скрипта: ScriptAlias ​​/ hg "/cgi-bin/hgweb.cgi/"

1 голос
/ 15 января 2012

Зачем запускать apache на 80 и 91?91 только для обслуживания статического контента?Если я не выполню одно из ваших требований, вы сможете делать все, что вам нужно, с чем-то вроде этого:

<VirtualHost *:80>
ServerName hg.my.com

ScriptAlias / "/cgi-bin/hgweb.cgi"

<Location />
    Order Deny,Allow
    AuthUserFile C:\wamp\.htpasswd
    AuthName "Please Log In"
    AuthType Basic

    require user admin
    require user dev

</Location>
</VirtualHost>

Вам не нужен прокси-сервер или отдельные правила для статических (Mercurial будет их обслуживать)просто отлично).

...