]> git.ipfire.org Git - thirdparty/git.git/blame - t/lib-httpd/apache.conf
Merge branch 'jk/use-perl-path-consistently'
[thirdparty/git.git] / t / lib-httpd / apache.conf
CommitLineData
603fb116 1ServerName dummy
faa4bc35
CB
2PidFile httpd.pid
3DocumentRoot www
466ddf90
JS
4LogFormat "%h %l %u %t \"%r\" %>s %b" common
5CustomLog access.log common
faa4bc35 6ErrorLog 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>
33LoadModule http2_module modules/mod_http2.so
3c14419c 34Protocols 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>
57ProxyRequests 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
90PassEnv GIT_VALGRIND
91PassEnv GIT_VALGRIND_OPTIONS
0ea47f9d 92PassEnv GNUPGHOME
b0f4c908 93PassEnv ASAN_OPTIONS
d9ef5738 94PassEnv LSAN_OPTIONS
89c57ab3 95PassEnv GIT_TRACE
1fad5033 96PassEnv GIT_CONFIG_NOSYSTEM
07c3c2aa 97PassEnv GIT_TEST_SIDEBAND_ALL
7a2d8ea4
RS
98PassEnv LANG
99PassEnv LC_ALL
f6288254 100
024bb125 101Alias /dumb/ www/
05b57710 102Alias /auth/dumb/ www/auth/dumb/
faa4bc35 103
c1917156
JK
104SetEnv 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
151ScriptAlias /smart/incomplete_length/git-upload-pack incomplete-length-upload-pack-v2-http.sh/
152ScriptAlias /smart/incomplete_body/git-upload-pack incomplete-body-upload-pack-v2-http.sh/
e4c9538a 153ScriptAlias /smart/no_report/git-receive-pack error-no-report.sh/
e4871cd5 154ScriptAliasMatch /error_git_upload_pack/(.*)/git-upload-pack error.sh/
666aae9a 155ScriptAliasMatch /smart_*[^/]*/(.*) ${GIT_EXEC_PATH}/git-http-backend/$1
4656bf47 156ScriptAlias /broken_smart/ broken-smart-http.sh/
30dea565 157ScriptAlias /error_smart/ error-smart-http.sh/
dbcf2bd3 158ScriptAlias /error/ error.sh/
eafff6e4 159ScriptAliasMatch /one_time_perl/(.*) apply-one-time-perl.sh/$1
988aad99 160ScriptAliasMatch /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 189RewriteEngine on
50d34137 190RewriteRule ^/dumb-redir/(.*)$ /dumb/$1 [R=301]
311e2ea0
TRC
191RewriteRule ^/smart-redir-perm/(.*)$ /smart/$1 [R=301]
192RewriteRule ^/smart-redir-temp/(.*)$ /smart/$1 [R=302]
050ef365
JK
193RewriteRule ^/smart-redir-auth/(.*)$ /auth/smart/$1 [R=301]
194RewriteRule ^/smart-redir-limited/(.*)/info/refs$ /smart/$1/info/refs [R=301]
f4113cac 195RewriteRule ^/ftp-redir/(.*)$ ftp://localhost:1000/$1 [R=302]
311e2ea0 196
b2581164
BB
197RewriteRule ^/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]
198RewriteRule ^/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
202RewriteCond %{QUERY_STRING} ^(.*)$
203RewriteRule ^/redir-to/(.*)$ /really-redir-to?path=$1&qs=%1 [R=302]
204RewriteCond %{QUERY_STRING} ^path=502/(.*)&qs=(.*)$
205RewriteRule ^/really-redir-to$ - [R=502,L]
206RewriteCond %{QUERY_STRING} ^path=(.*)&qs=(.*)$
207RewriteRule ^/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.
214RewriteRule ^/insane-redir/(.*)$ /intern-redir/$1/foo [R=301]
215RewriteRule ^/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.
219RewriteRule ^/redir-objects/(.*/info/refs)$ /dumb/$1 [PT]
220RewriteRule ^/redir-objects/(.*/objects/.*)$ /dumb/$1 [R=301]
221
faa4bc35
CB
222<IfDefine SSL>
223LoadModule ssl_module modules/mod_ssl.so
224
225SSLCertificateFile httpd.pem
226SSLCertificateKeyFile httpd.pem
227SSLRandomSeed startup file:/dev/urandom 512
228SSLRandomSeed connect file:/dev/urandom 512
229SSLSessionCache none
faa4bc35
CB
230SSLEngine 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
254RewriteCond %{QUERY_STRING} service=git-receive-pack [OR]
255RewriteCond %{REQUEST_URI} /git-receive-pack$
256RewriteRule ^/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>