]>
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 | |
5bdc47eb JK |
32 | <IfVersion < 2.4> |
33 | LockFile accept.lock | |
34 | </IfVersion> | |
35 | ||
3cf8fe1d GC |
36 | <IfVersion < 2.1> |
37 | <IfModule !mod_auth.c> | |
38 | LoadModule auth_module modules/mod_auth.so | |
39 | </IfModule> | |
40 | </IfVersion> | |
41 | ||
42 | <IfVersion >= 2.1> | |
43 | <IfModule !mod_auth_basic.c> | |
44 | LoadModule auth_basic_module modules/mod_auth_basic.so | |
45 | </IfModule> | |
46 | <IfModule !mod_authn_file.c> | |
47 | LoadModule authn_file_module modules/mod_authn_file.so | |
48 | </IfModule> | |
49 | <IfModule !mod_authz_user.c> | |
50 | LoadModule authz_user_module modules/mod_authz_user.so | |
51 | </IfModule> | |
b0808819 JK |
52 | <IfModule !mod_authz_host.c> |
53 | LoadModule authz_host_module modules/mod_authz_host.so | |
54 | </IfModule> | |
3cf8fe1d | 55 | </IfVersion> |
024bb125 | 56 | |
a8adcc47 JK |
57 | <IfVersion >= 2.4> |
58 | <IfModule !mod_authn_core.c> | |
59 | LoadModule authn_core_module modules/mod_authn_core.so | |
60 | </IfModule> | |
61 | <IfModule !mod_authz_core.c> | |
62 | LoadModule authz_core_module modules/mod_authz_core.so | |
63 | </IfModule> | |
bb3f7cca JK |
64 | <IfModule !mod_access_compat.c> |
65 | LoadModule access_compat_module modules/mod_access_compat.so | |
66 | </IfModule> | |
296f0b3e JK |
67 | <IfModule !mod_mpm_prefork.c> |
68 | LoadModule mpm_prefork_module modules/mod_mpm_prefork.so | |
69 | </IfModule> | |
59223223 MG |
70 | <IfModule !mod_unixd.c> |
71 | LoadModule unixd_module modules/mod_unixd.so | |
72 | </IfModule> | |
a8adcc47 JK |
73 | </IfVersion> |
74 | ||
f6288254 JK |
75 | PassEnv GIT_VALGRIND |
76 | PassEnv GIT_VALGRIND_OPTIONS | |
0ea47f9d | 77 | PassEnv GNUPGHOME |
b0f4c908 | 78 | PassEnv ASAN_OPTIONS |
d9ef5738 | 79 | PassEnv LSAN_OPTIONS |
89c57ab3 | 80 | PassEnv GIT_TRACE |
1fad5033 | 81 | PassEnv GIT_CONFIG_NOSYSTEM |
07c3c2aa | 82 | PassEnv GIT_TEST_SIDEBAND_ALL |
f6288254 | 83 | |
a812952a | 84 | SetEnvIf Git-Protocol ".*" GIT_PROTOCOL=$0 |
19113a26 | 85 | |
024bb125 | 86 | Alias /dumb/ www/ |
05b57710 | 87 | Alias /auth/dumb/ www/auth/dumb/ |
faa4bc35 | 88 | |
666aae9a | 89 | <LocationMatch /smart/> |
7da4e228 | 90 | SetEnv GIT_EXEC_PATH ${GIT_EXEC_PATH} |
8b2bd7cd | 91 | SetEnv GIT_HTTP_EXPORT_ALL |
666aae9a JK |
92 | </LocationMatch> |
93 | <LocationMatch /smart_noexport/> | |
8b2bd7cd | 94 | SetEnv GIT_EXEC_PATH ${GIT_EXEC_PATH} |
666aae9a JK |
95 | </LocationMatch> |
96 | <LocationMatch /smart_custom_env/> | |
e32a4581 JK |
97 | SetEnv GIT_EXEC_PATH ${GIT_EXEC_PATH} |
98 | SetEnv GIT_HTTP_EXPORT_ALL | |
99 | SetEnv GIT_COMMITTER_NAME "Custom User" | |
100 | SetEnv GIT_COMMITTER_EMAIL custom@example.com | |
666aae9a | 101 | </LocationMatch> |
6130f86d JK |
102 | <LocationMatch /smart_namespace/> |
103 | SetEnv GIT_EXEC_PATH ${GIT_EXEC_PATH} | |
104 | SetEnv GIT_HTTP_EXPORT_ALL | |
105 | SetEnv GIT_NAMESPACE ns | |
106 | </LocationMatch> | |
912b2acf DB |
107 | <LocationMatch /smart_cookies/> |
108 | SetEnv GIT_EXEC_PATH ${GIT_EXEC_PATH} | |
109 | SetEnv GIT_HTTP_EXPORT_ALL | |
110 | Header set Set-Cookie name=value | |
111 | </LocationMatch> | |
8cb01e2f | 112 | <LocationMatch /smart_headers/> |
8cb01e2f JS |
113 | SetEnv GIT_EXEC_PATH ${GIT_EXEC_PATH} |
114 | SetEnv GIT_HTTP_EXPORT_ALL | |
115 | </LocationMatch> | |
eafff6e4 | 116 | <LocationMatch /one_time_perl/> |
3374292e BW |
117 | SetEnv GIT_EXEC_PATH ${GIT_EXEC_PATH} |
118 | SetEnv GIT_HTTP_EXPORT_ALL | |
119 | </LocationMatch> | |
74b082ad DL |
120 | ScriptAlias /smart/incomplete_length/git-upload-pack incomplete-length-upload-pack-v2-http.sh/ |
121 | ScriptAlias /smart/incomplete_body/git-upload-pack incomplete-body-upload-pack-v2-http.sh/ | |
e4871cd5 | 122 | ScriptAliasMatch /error_git_upload_pack/(.*)/git-upload-pack error.sh/ |
666aae9a | 123 | ScriptAliasMatch /smart_*[^/]*/(.*) ${GIT_EXEC_PATH}/git-http-backend/$1 |
4656bf47 | 124 | ScriptAlias /broken_smart/ broken-smart-http.sh/ |
30dea565 | 125 | ScriptAlias /error_smart/ error-smart-http.sh/ |
dbcf2bd3 | 126 | ScriptAlias /error/ error.sh/ |
eafff6e4 | 127 | ScriptAliasMatch /one_time_perl/(.*) apply-one-time-perl.sh/$1 |
7da4e228 | 128 | <Directory ${GIT_EXEC_PATH}> |
f6288254 | 129 | Options FollowSymlinks |
7da4e228 | 130 | </Directory> |
74b082ad DL |
131 | <Files incomplete-length-upload-pack-v2-http.sh> |
132 | Options ExecCGI | |
133 | </Files> | |
134 | <Files incomplete-body-upload-pack-v2-http.sh> | |
135 | Options ExecCGI | |
136 | </Files> | |
4656bf47 SP |
137 | <Files broken-smart-http.sh> |
138 | Options ExecCGI | |
139 | </Files> | |
30dea565 JS |
140 | <Files error-smart-http.sh> |
141 | Options ExecCGI | |
142 | </Files> | |
dbcf2bd3 JK |
143 | <Files error.sh> |
144 | Options ExecCGI | |
145 | </Files> | |
eafff6e4 | 146 | <Files apply-one-time-perl.sh> |
3374292e BW |
147 | Options ExecCGI |
148 | </Files> | |
7da4e228 SP |
149 | <Files ${GIT_EXEC_PATH}/git-http-backend> |
150 | Options ExecCGI | |
151 | </Files> | |
152 | ||
311e2ea0 | 153 | RewriteEngine on |
50d34137 | 154 | RewriteRule ^/dumb-redir/(.*)$ /dumb/$1 [R=301] |
311e2ea0 TRC |
155 | RewriteRule ^/smart-redir-perm/(.*)$ /smart/$1 [R=301] |
156 | RewriteRule ^/smart-redir-temp/(.*)$ /smart/$1 [R=302] | |
050ef365 JK |
157 | RewriteRule ^/smart-redir-auth/(.*)$ /auth/smart/$1 [R=301] |
158 | RewriteRule ^/smart-redir-limited/(.*)/info/refs$ /smart/$1/info/refs [R=301] | |
f4113cac | 159 | RewriteRule ^/ftp-redir/(.*)$ ftp://localhost:1000/$1 [R=302] |
311e2ea0 | 160 | |
b2581164 BB |
161 | 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] |
162 | RewriteRule ^/loop-redir/(.*)$ /loop-redir/x-$1 [R=302] | |
163 | ||
8e27391a JT |
164 | # redir-to/502/x?y -> really-redir-to?path=502/x&qs=y which returns 502 |
165 | # redir-to/x?y -> really-redir-to?path=x&qs=y -> x?y | |
166 | RewriteCond %{QUERY_STRING} ^(.*)$ | |
167 | RewriteRule ^/redir-to/(.*)$ /really-redir-to?path=$1&qs=%1 [R=302] | |
168 | RewriteCond %{QUERY_STRING} ^path=502/(.*)&qs=(.*)$ | |
169 | RewriteRule ^/really-redir-to$ - [R=502,L] | |
170 | RewriteCond %{QUERY_STRING} ^path=(.*)&qs=(.*)$ | |
171 | RewriteRule ^/really-redir-to$ /%1?%2 [R=302] | |
172 | ||
6628eb41 JK |
173 | # The first rule issues a client-side redirect to something |
174 | # that _doesn't_ look like a git repo. The second rule is a | |
175 | # server-side rewrite, so that it turns out the odd-looking | |
176 | # thing _is_ a git repo. The "[PT]" tells Apache to match | |
177 | # the usual ScriptAlias rules for /smart. | |
178 | RewriteRule ^/insane-redir/(.*)$ /intern-redir/$1/foo [R=301] | |
179 | RewriteRule ^/intern-redir/(.*)/foo$ /smart/$1 [PT] | |
180 | ||
50d34137 JK |
181 | # Serve info/refs internally without redirecting, but |
182 | # issue a redirect for any object requests. | |
183 | RewriteRule ^/redir-objects/(.*/info/refs)$ /dumb/$1 [PT] | |
184 | RewriteRule ^/redir-objects/(.*/objects/.*)$ /dumb/$1 [R=301] | |
185 | ||
f1f2b45b JS |
186 | # Apache 2.2 does not understand <RequireAll>, so we use RewriteCond. |
187 | # And as RewriteCond does not allow testing for non-matches, we match | |
188 | # the desired case first (one has abra, two has cadabra), and let it | |
189 | # pass by marking the RewriteRule as [L], "last rule, do not process | |
190 | # any other matching RewriteRules after this"), and then have another | |
191 | # RewriteRule that matches all other cases and lets them fail via '[F]', | |
192 | # "fail the request". | |
193 | RewriteCond %{HTTP:x-magic-one} =abra | |
194 | RewriteCond %{HTTP:x-magic-two} =cadabra | |
195 | RewriteRule ^/smart_headers/.* - [L] | |
196 | RewriteRule ^/smart_headers/.* - [F] | |
197 | ||
faa4bc35 CB |
198 | <IfDefine SSL> |
199 | LoadModule ssl_module modules/mod_ssl.so | |
200 | ||
201 | SSLCertificateFile httpd.pem | |
202 | SSLCertificateKeyFile httpd.pem | |
203 | SSLRandomSeed startup file:/dev/urandom 512 | |
204 | SSLRandomSeed connect file:/dev/urandom 512 | |
205 | SSLSessionCache none | |
206 | SSLMutex file:ssl_mutex | |
207 | SSLEngine On | |
208 | </IfDefine> | |
209 | ||
3cf8fe1d GC |
210 | <Location /auth/> |
211 | AuthType Basic | |
212 | AuthName "git-auth" | |
213 | AuthUserFile passwd | |
214 | Require valid-user | |
215 | </Location> | |
216 | ||
4c71009d JK |
217 | <LocationMatch "^/auth-push/.*/git-receive-pack$"> |
218 | AuthType Basic | |
219 | AuthName "git-auth" | |
220 | AuthUserFile passwd | |
221 | Require valid-user | |
222 | </LocationMatch> | |
223 | ||
2e736fd5 JK |
224 | <LocationMatch "^/auth-fetch/.*/git-upload-pack$"> |
225 | AuthType Basic | |
226 | AuthName "git-auth" | |
227 | AuthUserFile passwd | |
228 | Require valid-user | |
229 | </LocationMatch> | |
230 | ||
b0808819 JK |
231 | RewriteCond %{QUERY_STRING} service=git-receive-pack [OR] |
232 | RewriteCond %{REQUEST_URI} /git-receive-pack$ | |
233 | RewriteRule ^/half-auth-complete/ - [E=AUTHREQUIRED:yes] | |
234 | ||
235 | <Location /half-auth-complete/> | |
236 | Order Deny,Allow | |
237 | Deny from env=AUTHREQUIRED | |
238 | ||
239 | AuthType Basic | |
240 | AuthName "Git Access" | |
241 | AuthUserFile passwd | |
242 | Require valid-user | |
243 | Satisfy Any | |
244 | </Location> | |
245 | ||
faa4bc35 CB |
246 | <IfDefine DAV> |
247 | LoadModule dav_module modules/mod_dav.so | |
248 | LoadModule dav_fs_module modules/mod_dav_fs.so | |
249 | ||
250 | DAVLockDB DAVLock | |
024bb125 | 251 | <Location /dumb/> |
faa4bc35 CB |
252 | Dav on |
253 | </Location> | |
0521710a JK |
254 | <Location /auth/dumb> |
255 | Dav on | |
256 | </Location> | |
faa4bc35 CB |
257 | </IfDefine> |
258 | ||
259 | <IfDefine SVN> | |
260 | LoadModule dav_svn_module modules/mod_dav_svn.so | |
261 | ||
a8a5d251 | 262 | <Location /${LIB_HTTPD_SVN}> |
faa4bc35 | 263 | DAV svn |
a8a5d251 | 264 | SVNPath "${LIB_HTTPD_SVNPATH}" |
faa4bc35 CB |
265 | </Location> |
266 | </IfDefine> |