我用 Ubuntu 14.04 和 Apache2(2.4.7) 设置了一个 git http(s) 服务器。我在/home/char/git/下创建了一个文件夹名称 test.git。我成功了
Git 克隆 https://test.com/test.git
但失败了
git 克隆 https://test.com/test
对于 git protocal,两者都可以工作。我在 Git Pro 中尝试了 git update-server-info 和许多其他方法,但仍然在这里被阻止。有谁知道http(s)服务器因遗漏.git而失败的原因。以下是我在 Apache 2 中的配置
ServerName test.com
DocumentRoot /home/char/git
<Directory "/home/char/git">
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
AllowOverride None
Require all granted
</Directory>
<LocationMatch "^/git/.*/git-receive-pack$">
AuthType Basic
AuthName "Git Repositories"
Require valid-user
</LocationMatch>
SetEnv GIT_PROJECT_ROOT /home/char/git
SetEnv GIT_HTTP_EXPORT_ALL
SetEnv REMOTE_USER=$REDIRECT_REMOTE_USER
ScriptAlias /git/ /usr/lib/git-core/git-http-backend/
SSLEngine on
SSLCertificateFile /etc/gitdata/mygit_ssl.crt
SSLCertificateKeyFile /etc/gitdata/mygit_ssl.key
这是因为一些存储库被称为<something>
而另一些存储库被称为<something>.git
(尤其是裸存储库)。