]>
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 |
89c57ab3 | 79 | PassEnv GIT_TRACE |
1fad5033 | 80 | PassEnv GIT_CONFIG_NOSYSTEM |
f6288254 | 81 | |
a812952a | 82 | SetEnvIf Git-Protocol ".*" GIT_PROTOCOL=$0 |
19113a26 | 83 | |
024bb125 | 84 | Alias /dumb/ www/ |
05b57710 | 85 | Alias /auth/dumb/ www/auth/dumb/ |
faa4bc35 | 86 | |
666aae9a | 87 | <LocationMatch /smart/> |
7da4e228 | 88 | SetEnv GIT_EXEC_PATH ${GIT_EXEC_PATH} |
8b2bd7cd | 89 | SetEnv GIT_HTTP_EXPORT_ALL |
666aae9a JK |
90 | </LocationMatch> |
91 | <LocationMatch /smart_noexport/> | |
8b2bd7cd | 92 | SetEnv GIT_EXEC_PATH ${GIT_EXEC_PATH} |
666aae9a JK |
93 | </LocationMatch> |
94 | <LocationMatch /smart_custom_env/> | |
e32a4581 JK |
95 | SetEnv GIT_EXEC_PATH ${GIT_EXEC_PATH} |
96 | SetEnv GIT_HTTP_EXPORT_ALL | |
97 | SetEnv GIT_COMMITTER_NAME "Custom User" | |
98 | SetEnv GIT_COMMITTER_EMAIL custom@example.com | |
666aae9a | 99 | </LocationMatch> |
6130f86d JK |
100 | <LocationMatch /smart_namespace/> |
101 | SetEnv GIT_EXEC_PATH ${GIT_EXEC_PATH} | |
102 | SetEnv GIT_HTTP_EXPORT_ALL | |
103 | SetEnv GIT_NAMESPACE ns | |
104 | </LocationMatch> | |
912b2acf DB |
105 | <LocationMatch /smart_cookies/> |
106 | SetEnv GIT_EXEC_PATH ${GIT_EXEC_PATH} | |
107 | SetEnv GIT_HTTP_EXPORT_ALL | |
108 | Header set Set-Cookie name=value | |
109 | </LocationMatch> | |
8cb01e2f | 110 | <LocationMatch /smart_headers/> |
8cb01e2f JS |
111 | SetEnv GIT_EXEC_PATH ${GIT_EXEC_PATH} |
112 | SetEnv GIT_HTTP_EXPORT_ALL | |
113 | </LocationMatch> | |
666aae9a | 114 | ScriptAliasMatch /smart_*[^/]*/(.*) ${GIT_EXEC_PATH}/git-http-backend/$1 |
4656bf47 | 115 | ScriptAlias /broken_smart/ broken-smart-http.sh/ |
dbcf2bd3 | 116 | ScriptAlias /error/ error.sh/ |
7da4e228 | 117 | <Directory ${GIT_EXEC_PATH}> |
f6288254 | 118 | Options FollowSymlinks |
7da4e228 | 119 | </Directory> |
4656bf47 SP |
120 | <Files broken-smart-http.sh> |
121 | Options ExecCGI | |
122 | </Files> | |
dbcf2bd3 JK |
123 | <Files error.sh> |
124 | Options ExecCGI | |
125 | </Files> | |
7da4e228 SP |
126 | <Files ${GIT_EXEC_PATH}/git-http-backend> |
127 | Options ExecCGI | |
128 | </Files> | |
129 | ||
311e2ea0 | 130 | RewriteEngine on |
50d34137 | 131 | RewriteRule ^/dumb-redir/(.*)$ /dumb/$1 [R=301] |
311e2ea0 TRC |
132 | RewriteRule ^/smart-redir-perm/(.*)$ /smart/$1 [R=301] |
133 | RewriteRule ^/smart-redir-temp/(.*)$ /smart/$1 [R=302] | |
050ef365 JK |
134 | RewriteRule ^/smart-redir-auth/(.*)$ /auth/smart/$1 [R=301] |
135 | RewriteRule ^/smart-redir-limited/(.*)/info/refs$ /smart/$1/info/refs [R=301] | |
f4113cac | 136 | RewriteRule ^/ftp-redir/(.*)$ ftp://localhost:1000/$1 [R=302] |
311e2ea0 | 137 | |
b2581164 BB |
138 | 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] |
139 | RewriteRule ^/loop-redir/(.*)$ /loop-redir/x-$1 [R=302] | |
140 | ||
8e27391a JT |
141 | # redir-to/502/x?y -> really-redir-to?path=502/x&qs=y which returns 502 |
142 | # redir-to/x?y -> really-redir-to?path=x&qs=y -> x?y | |
143 | RewriteCond %{QUERY_STRING} ^(.*)$ | |
144 | RewriteRule ^/redir-to/(.*)$ /really-redir-to?path=$1&qs=%1 [R=302] | |
145 | RewriteCond %{QUERY_STRING} ^path=502/(.*)&qs=(.*)$ | |
146 | RewriteRule ^/really-redir-to$ - [R=502,L] | |
147 | RewriteCond %{QUERY_STRING} ^path=(.*)&qs=(.*)$ | |
148 | RewriteRule ^/really-redir-to$ /%1?%2 [R=302] | |
149 | ||
6628eb41 JK |
150 | # The first rule issues a client-side redirect to something |
151 | # that _doesn't_ look like a git repo. The second rule is a | |
152 | # server-side rewrite, so that it turns out the odd-looking | |
153 | # thing _is_ a git repo. The "[PT]" tells Apache to match | |
154 | # the usual ScriptAlias rules for /smart. | |
155 | RewriteRule ^/insane-redir/(.*)$ /intern-redir/$1/foo [R=301] | |
156 | RewriteRule ^/intern-redir/(.*)/foo$ /smart/$1 [PT] | |
157 | ||
50d34137 JK |
158 | # Serve info/refs internally without redirecting, but |
159 | # issue a redirect for any object requests. | |
160 | RewriteRule ^/redir-objects/(.*/info/refs)$ /dumb/$1 [PT] | |
161 | RewriteRule ^/redir-objects/(.*/objects/.*)$ /dumb/$1 [R=301] | |
162 | ||
f1f2b45b JS |
163 | # Apache 2.2 does not understand <RequireAll>, so we use RewriteCond. |
164 | # And as RewriteCond does not allow testing for non-matches, we match | |
165 | # the desired case first (one has abra, two has cadabra), and let it | |
166 | # pass by marking the RewriteRule as [L], "last rule, do not process | |
167 | # any other matching RewriteRules after this"), and then have another | |
168 | # RewriteRule that matches all other cases and lets them fail via '[F]', | |
169 | # "fail the request". | |
170 | RewriteCond %{HTTP:x-magic-one} =abra | |
171 | RewriteCond %{HTTP:x-magic-two} =cadabra | |
172 | RewriteRule ^/smart_headers/.* - [L] | |
173 | RewriteRule ^/smart_headers/.* - [F] | |
174 | ||
faa4bc35 CB |
175 | <IfDefine SSL> |
176 | LoadModule ssl_module modules/mod_ssl.so | |
177 | ||
178 | SSLCertificateFile httpd.pem | |
179 | SSLCertificateKeyFile httpd.pem | |
180 | SSLRandomSeed startup file:/dev/urandom 512 | |
181 | SSLRandomSeed connect file:/dev/urandom 512 | |
182 | SSLSessionCache none | |
183 | SSLMutex file:ssl_mutex | |
184 | SSLEngine On | |
185 | </IfDefine> | |
186 | ||
3cf8fe1d GC |
187 | <Location /auth/> |
188 | AuthType Basic | |
189 | AuthName "git-auth" | |
190 | AuthUserFile passwd | |
191 | Require valid-user | |
192 | </Location> | |
193 | ||
4c71009d JK |
194 | <LocationMatch "^/auth-push/.*/git-receive-pack$"> |
195 | AuthType Basic | |
196 | AuthName "git-auth" | |
197 | AuthUserFile passwd | |
198 | Require valid-user | |
199 | </LocationMatch> | |
200 | ||
2e736fd5 JK |
201 | <LocationMatch "^/auth-fetch/.*/git-upload-pack$"> |
202 | AuthType Basic | |
203 | AuthName "git-auth" | |
204 | AuthUserFile passwd | |
205 | Require valid-user | |
206 | </LocationMatch> | |
207 | ||
b0808819 JK |
208 | RewriteCond %{QUERY_STRING} service=git-receive-pack [OR] |
209 | RewriteCond %{REQUEST_URI} /git-receive-pack$ | |
210 | RewriteRule ^/half-auth-complete/ - [E=AUTHREQUIRED:yes] | |
211 | ||
212 | <Location /half-auth-complete/> | |
213 | Order Deny,Allow | |
214 | Deny from env=AUTHREQUIRED | |
215 | ||
216 | AuthType Basic | |
217 | AuthName "Git Access" | |
218 | AuthUserFile passwd | |
219 | Require valid-user | |
220 | Satisfy Any | |
221 | </Location> | |
222 | ||
faa4bc35 CB |
223 | <IfDefine DAV> |
224 | LoadModule dav_module modules/mod_dav.so | |
225 | LoadModule dav_fs_module modules/mod_dav_fs.so | |
226 | ||
227 | DAVLockDB DAVLock | |
024bb125 | 228 | <Location /dumb/> |
faa4bc35 CB |
229 | Dav on |
230 | </Location> | |
0521710a JK |
231 | <Location /auth/dumb> |
232 | Dav on | |
233 | </Location> | |
faa4bc35 CB |
234 | </IfDefine> |
235 | ||
236 | <IfDefine SVN> | |
237 | LoadModule dav_svn_module modules/mod_dav_svn.so | |
238 | ||
a8a5d251 | 239 | <Location /${LIB_HTTPD_SVN}> |
faa4bc35 | 240 | DAV svn |
a8a5d251 | 241 | SVNPath "${LIB_HTTPD_SVNPATH}" |
faa4bc35 CB |
242 | </Location> |
243 | </IfDefine> |