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

cgit и nginx обрабатывают индексную страницу как репозиторий

Я использую браузер репозитория git с помощью cgit на nginx.
Открытие индексной страницы вызывает No repositories found ошибка, которая будет отображаться вместо индекса. Я считаю это потому что foo.bar/ обрабатывается как foo.bar/cgit, который затем интерпретируется как репозиторий git с именем "cgit", которого не существует, отсюда и ошибка. Я не уверен, что я здесь делаю не так.

моя конфигурация nginx с удаленными нерелевантными частями (например, конфигурациями ssl и т. д.) и очищенными адресами / путями для анонимности:

server {
    listen                          80;
    server_name                     git.foo.bar;
    return                          301 https://git.foo.bar$request_uri;
}

server {
    listen                          443 ssl http2;
    server_name                     git.foo.bar;

    #
    # ssl configs here
    #

    location ~* ^.+\.(css|png|ico)$ {
            root /foo/bar/htdocs;
            expires 30d;
    }

    location / {
            include                 fastcgi_params;
            fastcgi_pass            unix:/foo/bar;
            fastcgi_index           /;

            fastcgi_param           DOCUMENT_ROOT           /foo/bar/htdocs;
            fastcgi_param           SCRIPT_FILENAME         /foo/bar/cgit.cgi;
            fastcgi_param           PATH_INFO               $uri;
            fastcgi_param           HTTP_HOST               $server_name;
    }

}

Добавление

rewrite     /cgi    /   break;

внутри location / блок решает именно эту проблему.