NGINX 和 CGit 配置

NGINX 和 CGit 配置

我正在尝试设置 CGit 和 NGINX。我快完成了,但我的 NGINX 配置文件中的重写规则有问题。

目前我有这个:

server {
    listen       80;
    server_name  cgit.mydomain.com;
    index cgit.cgi;
    gzip off;

    root /usr/share/webapps/cgit;

    include fastcgi_params;
    fastcgi_param   SCRIPT_FILENAME $document_root/cgit.cgi;

    location / {
        try_files $uri @cgit;
    }

    location @cgit {
        auth_basic "Restricted";
        auth_basic_user_file /path/to/my/password_file;

        gzip off;
        rewrite ^/([^/]+/.*)?$ /cgit.cgi?url=$1 break;
        fastcgi_pass    fcgiwrap;
    }
}

我理解,我所查看的 URLdemo_repo_1.git应该是这样的http://cgit.mydomain.com/cgit.cgi?url=gitolite-admin.git(或者类似的东西?),但是它看起来像http://cgit.mydomain.com/cgit.cgi/gitolite-admin.git/,并且它不起作用(因为cgit.cgi脚本无法从 URL 中读取正确的数据并且无法显示关于我的存储库的正确信息。

此外,如果我强制使用我认为应该是的 URL(在我的浏览器中复制并粘贴“正确”的 URL),脚本cgit.cgi就会被下载。

您能帮我解决一下重写规则吗?

相关内容