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