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