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