cgit 和 nginx 将索引页视为存储库

cgit 和 nginx 将索引页视为存储库

我在 nginx 上使用 cgit 运行 git 存储库浏览器。
打开索引页会导致No repositories found显示错误而不是索引。我相信这是因为foo.bar/被处理为foo.bar/cgit,然后被解释为名为“cgit”的 git 存储库,而该存储库并不存在,因此出现错误。我不确定我在这里做错了什么。

我的 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;
    }

}

答案1

添加

rewrite     /cgi    /   break;

块内部location /解决了这个特殊的问题。

相关内容