Назад | Перейти на главную страницу

Lighttpd с конфигурацией FastCGI под управлением ViewVC - проблемы перезаписи

На данный момент борюсь с настройкой lighttpd вместе с ViewVC. Конфигурация была перенесена из Apache 2.2.x, который все еще работает на машине, обслуживая материалы WebDAV / SVN, через прокси.

Теперь проблема, с которой я столкнулся, связана с правилами перезаписи, и я не совсем уверен, что мне здесь не хватает. Вот моя конфигурация (слегка сжатая для краткости):

var.hgwebfcgi                        = "/var/www/vcs/bin/hgweb.fcgi"
var.viewvcfcgi                       = "/var/www/vcs/bin/wsgi/viewvc.fcgi"
var.viewvcstatic                     = "/var/www/vcs/templates/docroot"
var.vcs_errorlog                     = "/var/log/lighttpd/error.log"
var.vcs_accesslog                    = "/var/log/lighttpd/access.log"

$HTTP["host"] =~ "domain.tld" {
    $SERVER["socket"] == ":443" {
        protocol                     = "https://"
        ssl.engine                   = "enable"
        ssl.pemfile                  = "/etc/lighttpd/ssl/..."
        ssl.ca-file                  = "/etc/lighttpd/ssl/..."
        ssl.use-sslv2                = "disable"
        setenv.add-environment       = ( "HTTPS" => "on" )
        url.rewrite-once            += ("^/mercurial$" => "/mercurial/" )
        url.rewrite-once            += ("^/$" => "/viewvc.fcgi" )
        alias.url                   += ( "/viewvc-static" => var.viewvcstatic )
        alias.url                   += ( "/robots.txt" => var.robots )
        alias.url                   += ( "/favicon.ico" => var.favicon )
        alias.url                   += ( "/mercurial" => var.hgwebfcgi )
        alias.url                   += ( "/viewvc.fcgi" => var.viewvcfcgi )
        $HTTP["url"] =~ "^/mercurial" {
            fastcgi.server += (
                ".fcgi" => ( (
                    "bin-path"      => var.hgwebfcgi,
                    "socket"        => "/tmp/hgwebdir.sock",
                    "min-procs"     => 1,
                    "max-procs"     => 5
                ) )
            )
        } else $HTTP["url"] =~ "^/viewvc\.fcgi" {
            fastcgi.server += (
                ".fcgi" => ( (
                    "bin-path"      => var.viewvcfcgi,
                    "socket"        => "/tmp/viewvc.sock",
                    "min-procs"     => 1,
                    "max-procs"     => 5
                ) )
            )
        }
        expire.url                   = ( "/viewvc-static" => "access plus 60 days" )
        server.errorlog              = var.vcs_errorlog
        accesslog.filename           = var.vcs_accesslog
    }
}

Теперь, когда я получаю доступ к domain.tld, Я правильно вижу индекс репозиториев. Однако, когда я смотрю на ссылки для каждого соответствующего репозитория (или щелкаю по ним, если на то пошло), он имеет форму https://domain.tld/viewvc.fcgi/reponame вместо предполагаемого https://domain.tld/reponame.

Что мне нужно изменить / добавить для этого? Должен ли я как-то «злоупотреблять» механизмом индексного файла? Цель - сохранить /mercurial псевдоним функциональный.

До сих пор я пытался снова просмотреть книгу lighttpd от Packt, а также документацию по lighttpd, но не нашел ничего, что могло бы соответствовать проблеме.