]>
Commit | Line | Data |
---|---|---|
603fb116 | 1 | ServerName dummy |
faa4bc35 CB |
2 | PidFile httpd.pid |
3 | DocumentRoot www | |
466ddf90 JS |
4 | LogFormat "%h %l %u %t \"%r\" %>s %b" common |
5 | CustomLog access.log common | |
faa4bc35 | 6 | ErrorLog error.log |
7d59ceed JS |
7 | <IfModule !mod_log_config.c> |
8 | LoadModule log_config_module modules/mod_log_config.so | |
9 | </IfModule> | |
024bb125 SP |
10 | <IfModule !mod_alias.c> |
11 | LoadModule alias_module modules/mod_alias.so | |
12 | </IfModule> | |
7da4e228 SP |
13 | <IfModule !mod_cgi.c> |
14 | LoadModule cgi_module modules/mod_cgi.so | |
15 | </IfModule> | |
16 | <IfModule !mod_env.c> | |
17 | LoadModule env_module modules/mod_env.so | |
18 | </IfModule> | |
311e2ea0 TRC |
19 | <IfModule !mod_rewrite.c> |
20 | LoadModule rewrite_module modules/mod_rewrite.so | |
21 | </IFModule> | |
3cf8fe1d GC |
22 | <IfModule !mod_version.c> |
23 | LoadModule version_module modules/mod_version.so | |
24 | </IfModule> | |
912b2acf DB |
25 | <IfModule !mod_headers.c> |
26 | LoadModule headers_module modules/mod_headers.so | |
27 | </IfModule> | |
a812952a TZ |
28 | <IfModule !mod_setenvif.c> |
29 | LoadModule setenvif_module modules/mod_setenvif.so | |
30 | </IfModule> | |
3cf8fe1d | 31 | |
73c49a44 JK |
32 | <IfDefine HTTP2> |
33 | LoadModule http2_module modules/mod_http2.so | |
3c14419c | 34 | Protocols h2 h2c |
73c49a44 JK |
35 | </IfDefine> |
36 | ||
3cf8fe1d GC |
37 | <IfModule !mod_auth_basic.c> |
38 | LoadModule auth_basic_module modules/mod_auth_basic.so | |
39 | </IfModule> | |
40 | <IfModule !mod_authn_file.c> | |
41 | LoadModule authn_file_module modules/mod_authn_file.so | |
42 | </IfModule> | |
43 | <IfModule !mod_authz_user.c> | |
44 | LoadModule authz_user_module modules/mod_authz_user.so | |
45 | </IfModule> | |
b0808819 JK |
46 | <IfModule !mod_authz_host.c> |
47 | LoadModule authz_host_module modules/mod_authz_host.so | |
48 | </IfModule> | |
024bb125 | 49 | |
29ae2c9e JK |
50 | <IfDefine PROXY> |
51 | <IfModule !mod_proxy.c> | |
52 | LoadModule proxy_module modules/mod_proxy.so | |
53 | </IfModule> | |
54 | <IfModule !mod_proxy_http.c> | |
55 | LoadModule proxy_http_module modules/mod_proxy_http.so | |
56 | </IfModule> | |
57 | ProxyRequests On | |
58 | <Proxy "*"> | |
59 | AuthType Basic | |
60 | AuthName "proxy-auth" | |
61 | AuthUserFile proxy-passwd | |
62 | Require valid-user | |
63 | </Proxy> | |
64 | </IfDefine> | |
65 | ||
a8adcc47 JK |
66 | <IfModule !mod_authn_core.c> |
67 | LoadModule authn_core_module modules/mod_authn_core.so | |
68 | </IfModule> | |
69 | <IfModule !mod_authz_core.c> | |
70 | LoadModule authz_core_module modules/mod_authz_core.so | |
71 | </IfModule> | |
bb3f7cca JK |
72 | <IfModule !mod_access_compat.c> |
73 | LoadModule access_compat_module modules/mod_access_compat.so | |
74 | </IfModule> | |
59223223 MG |
75 | <IfModule !mod_unixd.c> |
76 | LoadModule unixd_module modules/mod_unixd.so | |
77 | </IfModule> | |
73c49a44 JK |
78 | |
79 | <IfDefine HTTP2> | |
80 | <IfModule !mod_mpm_event.c> | |
81 | LoadModule mpm_event_module modules/mod_mpm_event.so | |
82 | </IfModule> | |
83 | </IfDefine> | |
84 | <IfDefine !HTTP2> | |
85 | <IfModule !mod_mpm_prefork.c> | |
86 | LoadModule mpm_prefork_module modules/mod_mpm_prefork.so | |
87 | </IfModule> | |
88 | </IfDefine> | |
a8adcc47 | 89 | |
f6288254 JK |
90 | PassEnv GIT_VALGRIND |
91 | PassEnv GIT_VALGRIND_OPTIONS | |
0ea47f9d | 92 | PassEnv GNUPGHOME |
b0f4c908 | 93 | PassEnv ASAN_OPTIONS |
d9ef5738 | 94 | PassEnv LSAN_OPTIONS |
89c57ab3 | 95 | PassEnv GIT_TRACE |
1fad5033 | 96 | PassEnv GIT_CONFIG_NOSYSTEM |
07c3c2aa | 97 | PassEnv GIT_TEST_SIDEBAND_ALL |
7a2d8ea4 RS |
98 | PassEnv LANG |
99 | PassEnv LC_ALL | |
f6288254 | 100 | |
024bb125 | 101 | Alias /dumb/ www/ |
05b57710 | 102 | Alias /auth/dumb/ www/auth/dumb/ |
faa4bc35 | 103 | |
c1917156 JK |
104 | SetEnv PERL_PATH ${PERL_PATH} |
105 | ||
666aae9a | 106 | <LocationMatch /smart/> |
7da4e228 | 107 | SetEnv GIT_EXEC_PATH ${GIT_EXEC_PATH} |
8b2bd7cd | 108 | SetEnv GIT_HTTP_EXPORT_ALL |
666aae9a JK |
109 | </LocationMatch> |
110 | <LocationMatch /smart_noexport/> | |
8b2bd7cd | 111 | SetEnv GIT_EXEC_PATH ${GIT_EXEC_PATH} |
666aae9a JK |
112 | </LocationMatch> |
113 | <LocationMatch /smart_custom_env/> | |
e32a4581 JK |
114 | SetEnv GIT_EXEC_PATH ${GIT_EXEC_PATH} |
115 | SetEnv GIT_HTTP_EXPORT_ALL | |
116 | SetEnv GIT_COMMITTER_NAME "Custom User" | |
117 | SetEnv GIT_COMMITTER_EMAIL custom@example.com | |
666aae9a | 118 | </LocationMatch> |
6130f86d JK |
119 | <LocationMatch /smart_namespace/> |
120 | SetEnv GIT_EXEC_PATH ${GIT_EXEC_PATH} | |
121 | SetEnv GIT_HTTP_EXPORT_ALL | |
122 | SetEnv GIT_NAMESPACE ns | |
123 | </LocationMatch> | |
912b2acf DB |
124 | <LocationMatch /smart_cookies/> |
125 | SetEnv GIT_EXEC_PATH ${GIT_EXEC_PATH} | |
126 | SetEnv GIT_HTTP_EXPORT_ALL | |
127 | Header set Set-Cookie name=value | |
128 | </LocationMatch> | |
8cb01e2f | 129 | <LocationMatch /smart_headers/> |
edd060dc JK |
130 | <RequireAll> |
131 | Require expr %{HTTP:x-magic-one} == 'abra' | |
132 | Require expr %{HTTP:x-magic-two} == 'cadabra' | |
133 | </RequireAll> | |
8cb01e2f JS |
134 | SetEnv GIT_EXEC_PATH ${GIT_EXEC_PATH} |
135 | SetEnv GIT_HTTP_EXPORT_ALL | |
136 | </LocationMatch> | |
eafff6e4 | 137 | <LocationMatch /one_time_perl/> |
3374292e BW |
138 | SetEnv GIT_EXEC_PATH ${GIT_EXEC_PATH} |
139 | SetEnv GIT_HTTP_EXPORT_ALL | |
140 | </LocationMatch> | |
26146980 JK |
141 | <LocationMatch /smart_v0/> |
142 | SetEnv GIT_EXEC_PATH ${GIT_EXEC_PATH} | |
143 | SetEnv GIT_HTTP_EXPORT_ALL | |
144 | SetEnv GIT_PROTOCOL | |
145 | </LocationMatch> | |
988aad99 MJC |
146 | <LocationMatch /custom_auth/> |
147 | SetEnv GIT_EXEC_PATH ${GIT_EXEC_PATH} | |
148 | SetEnv GIT_HTTP_EXPORT_ALL | |
149 | CGIPassAuth on | |
150 | </LocationMatch> | |
74b082ad DL |
151 | ScriptAlias /smart/incomplete_length/git-upload-pack incomplete-length-upload-pack-v2-http.sh/ |
152 | ScriptAlias /smart/incomplete_body/git-upload-pack incomplete-body-upload-pack-v2-http.sh/ | |
e4c9538a | 153 | ScriptAlias /smart/no_report/git-receive-pack error-no-report.sh/ |
e4871cd5 | 154 | ScriptAliasMatch /error_git_upload_pack/(.*)/git-upload-pack error.sh/ |
666aae9a | 155 | ScriptAliasMatch /smart_*[^/]*/(.*) ${GIT_EXEC_PATH}/git-http-backend/$1 |
4656bf47 | 156 | ScriptAlias /broken_smart/ broken-smart-http.sh/ |
30dea565 | 157 | ScriptAlias /error_smart/ error-smart-http.sh/ |
dbcf2bd3 | 158 | ScriptAlias /error/ error.sh/ |
eafff6e4 | 159 | ScriptAliasMatch /one_time_perl/(.*) apply-one-time-perl.sh/$1 |
988aad99 | 160 | ScriptAliasMatch /custom_auth/(.*) nph-custom-auth.sh/$1 |
7da4e228 | 161 | <Directory ${GIT_EXEC_PATH}> |
f6288254 | 162 | Options FollowSymlinks |
7da4e228 | 163 | </Directory> |
74b082ad DL |
164 | <Files incomplete-length-upload-pack-v2-http.sh> |
165 | Options ExecCGI | |
166 | </Files> | |
167 | <Files incomplete-body-upload-pack-v2-http.sh> | |
168 | Options ExecCGI | |
169 | </Files> | |
e4c9538a JK |
170 | <Files error-no-report.sh> |
171 | Options ExecCGI | |
172 | </Files> | |
4656bf47 SP |
173 | <Files broken-smart-http.sh> |
174 | Options ExecCGI | |
175 | </Files> | |
30dea565 JS |
176 | <Files error-smart-http.sh> |
177 | Options ExecCGI | |
178 | </Files> | |
dbcf2bd3 JK |
179 | <Files error.sh> |
180 | Options ExecCGI | |
181 | </Files> | |
eafff6e4 | 182 | <Files apply-one-time-perl.sh> |
3374292e BW |
183 | Options ExecCGI |
184 | </Files> | |
7da4e228 SP |
185 | <Files ${GIT_EXEC_PATH}/git-http-backend> |
186 | Options ExecCGI | |
187 | </Files> | |
188 | ||
311e2ea0 | 189 | RewriteEngine on |
50d34137 | 190 | RewriteRule ^/dumb-redir/(.*)$ /dumb/$1 [R=301] |
311e2ea0 TRC |
191 | RewriteRule ^/smart-redir-perm/(.*)$ /smart/$1 [R=301] |
192 | RewriteRule ^/smart-redir-temp/(.*)$ /smart/$1 [R=302] | |
050ef365 JK |
193 | RewriteRule ^/smart-redir-auth/(.*)$ /auth/smart/$1 [R=301] |
194 | RewriteRule ^/smart-redir-limited/(.*)/info/refs$ /smart/$1/info/refs [R=301] | |
f4113cac | 195 | RewriteRule ^/ftp-redir/(.*)$ ftp://localhost:1000/$1 [R=302] |
311e2ea0 | 196 | |
b2581164 BB |
197 | RewriteRule ^/loop-redir/x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-(.*) /$1 [R=302] |
198 | RewriteRule ^/loop-redir/(.*)$ /loop-redir/x-$1 [R=302] | |
199 | ||
8e27391a JT |
200 | # redir-to/502/x?y -> really-redir-to?path=502/x&qs=y which returns 502 |
201 | # redir-to/x?y -> really-redir-to?path=x&qs=y -> x?y | |
202 | RewriteCond %{QUERY_STRING} ^(.*)$ | |
203 | RewriteRule ^/redir-to/(.*)$ /really-redir-to?path=$1&qs=%1 [R=302] | |
204 | RewriteCond %{QUERY_STRING} ^path=502/(.*)&qs=(.*)$ | |
205 | RewriteRule ^/really-redir-to$ - [R=502,L] | |
206 | RewriteCond %{QUERY_STRING} ^path=(.*)&qs=(.*)$ | |
207 | RewriteRule ^/really-redir-to$ /%1?%2 [R=302] | |
208 | ||
6628eb41 JK |
209 | # The first rule issues a client-side redirect to something |
210 | # that _doesn't_ look like a git repo. The second rule is a | |
211 | # server-side rewrite, so that it turns out the odd-looking | |
212 | # thing _is_ a git repo. The "[PT]" tells Apache to match | |
213 | # the usual ScriptAlias rules for /smart. | |
214 | RewriteRule ^/insane-redir/(.*)$ /intern-redir/$1/foo [R=301] | |
215 | RewriteRule ^/intern-redir/(.*)/foo$ /smart/$1 [PT] | |
216 | ||
50d34137 JK |
217 | # Serve info/refs internally without redirecting, but |
218 | # issue a redirect for any object requests. | |
219 | RewriteRule ^/redir-objects/(.*/info/refs)$ /dumb/$1 [PT] | |
220 | RewriteRule ^/redir-objects/(.*/objects/.*)$ /dumb/$1 [R=301] | |
221 | ||
faa4bc35 CB |
222 | <IfDefine SSL> |
223 | LoadModule ssl_module modules/mod_ssl.so | |
224 | ||
225 | SSLCertificateFile httpd.pem | |
226 | SSLCertificateKeyFile httpd.pem | |
227 | SSLRandomSeed startup file:/dev/urandom 512 | |
228 | SSLRandomSeed connect file:/dev/urandom 512 | |
229 | SSLSessionCache none | |
faa4bc35 CB |
230 | SSLEngine On |
231 | </IfDefine> | |
232 | ||
3cf8fe1d GC |
233 | <Location /auth/> |
234 | AuthType Basic | |
235 | AuthName "git-auth" | |
236 | AuthUserFile passwd | |
237 | Require valid-user | |
238 | </Location> | |
239 | ||
4c71009d JK |
240 | <LocationMatch "^/auth-push/.*/git-receive-pack$"> |
241 | AuthType Basic | |
242 | AuthName "git-auth" | |
243 | AuthUserFile passwd | |
244 | Require valid-user | |
245 | </LocationMatch> | |
246 | ||
2e736fd5 JK |
247 | <LocationMatch "^/auth-fetch/.*/git-upload-pack$"> |
248 | AuthType Basic | |
249 | AuthName "git-auth" | |
250 | AuthUserFile passwd | |
251 | Require valid-user | |
252 | </LocationMatch> | |
253 | ||
b0808819 JK |
254 | RewriteCond %{QUERY_STRING} service=git-receive-pack [OR] |
255 | RewriteCond %{REQUEST_URI} /git-receive-pack$ | |
256 | RewriteRule ^/half-auth-complete/ - [E=AUTHREQUIRED:yes] | |
257 | ||
258 | <Location /half-auth-complete/> | |
259 | Order Deny,Allow | |
260 | Deny from env=AUTHREQUIRED | |
261 | ||
262 | AuthType Basic | |
263 | AuthName "Git Access" | |
264 | AuthUserFile passwd | |
265 | Require valid-user | |
266 | Satisfy Any | |
267 | </Location> | |
268 | ||
faa4bc35 CB |
269 | <IfDefine DAV> |
270 | LoadModule dav_module modules/mod_dav.so | |
271 | LoadModule dav_fs_module modules/mod_dav_fs.so | |
272 | ||
273 | DAVLockDB DAVLock | |
024bb125 | 274 | <Location /dumb/> |
faa4bc35 CB |
275 | Dav on |
276 | </Location> | |
0521710a JK |
277 | <Location /auth/dumb> |
278 | Dav on | |
279 | </Location> | |
faa4bc35 CB |
280 | </IfDefine> |
281 | ||
282 | <IfDefine SVN> | |
283 | LoadModule dav_svn_module modules/mod_dav_svn.so | |
284 | ||
a8a5d251 | 285 | <Location /${LIB_HTTPD_SVN}> |
faa4bc35 | 286 | DAV svn |
a8a5d251 | 287 | SVNPath "${LIB_HTTPD_SVNPATH}" |
faa4bc35 CB |
288 | </Location> |
289 | </IfDefine> |