起因其实是这样的,我在学校里弄了一台NAS,然后在这台机上开了Git Server来进行社团的源码控制,但是呢,只有内网IP,外网没办法直接访问到机器
但是手里管理着学校一台有几个域名解析的SERVER(但是应该是用VMWARE搞的VPS之类的,然后学校把相关域名解析到有外网IP的反向代理服务器,然后通过反向代理服务器上的squid分发到内网)
于是某天突发奇想,通过Apache伪静态+Proxy曲线救国访问git server,经过百般尝试终于成功了
动一下httpd.conf即可

在某域名的VirtualHost段下加上

1
2
3
4
5
6
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^(.*)/([a-z0-9_\-]+)\.git$ http://内网IP解析的域名/$2.git [P,L]
RewriteRule ^(.*)/([a-z0-9_\-]+)\.git/(.*)$ http://内网IP解析的域名/$2.git/$3 [P,L]
</IfModule>

并在httpd.conf开头补上AddDefaultCharset UTF-8防止反向代理乱码
然后去掉

1
2
3
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_http_module modules/mod_proxy_http.so

前的注释
然后重启APACHE服务,搞定~
暑假跑到外面也是可以用git的!~