1ServerName dummy
2<IfVersion < 2.4>
3LockFile accept.lock
4</IfVersion>
5PidFile httpd.pid
6DocumentRoot www
7LogFormat "%h %l %u %t \"%r\" %>s %b" common
8CustomLog access.log common
9ErrorLog error.log
10<IfModule !mod_log_config.c>
11 LoadModule log_config_module modules/mod_log_config.so
12</IfModule>
13<IfModule !mod_alias.c>
14 LoadModule alias_module modules/mod_alias.so
15</IfModule>
16<IfModule !mod_cgi.c>
17 LoadModule cgi_module modules/mod_cgi.so
18</IfModule>
19<IfModule !mod_env.c>
20 LoadModule env_module modules/mod_env.so
21</IfModule>
22<IfModule !mod_rewrite.c>
23 LoadModule rewrite_module modules/mod_rewrite.so
24</IFModule>
25<IfModule !mod_version.c>
26 LoadModule version_module modules/mod_version.so
27</IfModule>
28
29<IfVersion < 2.1>
30<IfModule !mod_auth.c>
31 LoadModule auth_module modules/mod_auth.so
32</IfModule>
33</IfVersion>
34
35<IfVersion >= 2.1>
36<IfModule !mod_auth_basic.c>
37 LoadModule auth_basic_module modules/mod_auth_basic.so
38</IfModule>
39<IfModule !mod_authn_file.c>
40 LoadModule authn_file_module modules/mod_authn_file.so
41</IfModule>
42<IfModule !mod_authz_user.c>
43 LoadModule authz_user_module modules/mod_authz_user.so
44</IfModule>
45<IfModule !mod_authz_host.c>
46 LoadModule authz_host_module modules/mod_authz_host.so
47</IfModule>
48</IfVersion>
49
50<IfVersion >= 2.4>
51<IfModule !mod_authn_core.c>
52 LoadModule authn_core_module modules/mod_authn_core.so
53</IfModule>
54<IfModule !mod_authz_core.c>
55 LoadModule authz_core_module modules/mod_authz_core.so
56</IfModule>
57<IfModule !mod_access_compat.c>
58 LoadModule access_compat_module modules/mod_access_compat.so
59</IfModule>
60<IfModule !mod_mpm_prefork.c>
61 LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
62</IfModule>
63</IfVersion>
64
65PassEnv GIT_VALGRIND
66PassEnv GIT_VALGRIND_OPTIONS
67
68Alias /dumb/ www/
69Alias /auth/dumb/ www/auth/dumb/
70
71<LocationMatch /smart/>
72 SetEnv GIT_EXEC_PATH ${GIT_EXEC_PATH}
73 SetEnv GIT_HTTP_EXPORT_ALL
74</LocationMatch>
75<LocationMatch /smart_noexport/>
76 SetEnv GIT_EXEC_PATH ${GIT_EXEC_PATH}
77</LocationMatch>
78<LocationMatch /smart_custom_env/>
79 SetEnv GIT_EXEC_PATH ${GIT_EXEC_PATH}
80 SetEnv GIT_HTTP_EXPORT_ALL
81 SetEnv GIT_COMMITTER_NAME "Custom User"
82 SetEnv GIT_COMMITTER_EMAIL custom@example.com
83</LocationMatch>
84ScriptAliasMatch /smart_*[^/]*/(.*) ${GIT_EXEC_PATH}/git-http-backend/$1
85ScriptAlias /broken_smart/ broken-smart-http.sh/
86<Directory ${GIT_EXEC_PATH}>
87 Options FollowSymlinks
88</Directory>
89<Files broken-smart-http.sh>
90 Options ExecCGI
91</Files>
92<Files ${GIT_EXEC_PATH}/git-http-backend>
93 Options ExecCGI
94</Files>
95
96RewriteEngine on
97RewriteRule ^/smart-redir-perm/(.*)$ /smart/$1 [R=301]
98RewriteRule ^/smart-redir-temp/(.*)$ /smart/$1 [R=302]
99
100<IfDefine SSL>
101LoadModule ssl_module modules/mod_ssl.so
102
103SSLCertificateFile httpd.pem
104SSLCertificateKeyFile httpd.pem
105SSLRandomSeed startup file:/dev/urandom 512
106SSLRandomSeed connect file:/dev/urandom 512
107SSLSessionCache none
108SSLMutex file:ssl_mutex
109SSLEngine On
110</IfDefine>
111
112<Location /auth/>
113 AuthType Basic
114 AuthName "git-auth"
115 AuthUserFile passwd
116 Require valid-user
117</Location>
118
119<LocationMatch "^/auth-push/.*/git-receive-pack$">
120 AuthType Basic
121 AuthName "git-auth"
122 AuthUserFile passwd
123 Require valid-user
124</LocationMatch>
125
126<LocationMatch "^/auth-fetch/.*/git-upload-pack$">
127 AuthType Basic
128 AuthName "git-auth"
129 AuthUserFile passwd
130 Require valid-user
131</LocationMatch>
132
133RewriteCond %{QUERY_STRING} service=git-receive-pack [OR]
134RewriteCond %{REQUEST_URI} /git-receive-pack$
135RewriteRule ^/half-auth-complete/ - [E=AUTHREQUIRED:yes]
136
137<Location /half-auth-complete/>
138 Order Deny,Allow
139 Deny from env=AUTHREQUIRED
140
141 AuthType Basic
142 AuthName "Git Access"
143 AuthUserFile passwd
144 Require valid-user
145 Satisfy Any
146</Location>
147
148<IfDefine DAV>
149 LoadModule dav_module modules/mod_dav.so
150 LoadModule dav_fs_module modules/mod_dav_fs.so
151
152 DAVLockDB DAVLock
153 <Location /dumb/>
154 Dav on
155 </Location>
156 <Location /auth/dumb>
157 Dav on
158 </Location>
159</IfDefine>
160
161<IfDefine SVN>
162 LoadModule dav_svn_module modules/mod_dav_svn.so
163
164 <Location /svn>
165 DAV svn
166 SVNPath svnrepo
167 </Location>
168</IfDefine>