ServerName dummy
PidFile httpd.pid
DocumentRoot www
LogFormat "%h %l %u %t \"%r\" %>s %b" common
CustomLog access.log common
ErrorLog error.log
<IfModule !mod_log_config.c>
	LoadModule log_config_module modules/mod_log_config.so
</IfModule>
<IfModule !mod_alias.c>
	LoadModule alias_module modules/mod_alias.so
</IfModule>
<IfModule !mod_cgi.c>
	LoadModule cgi_module modules/mod_cgi.so
</IfModule>
<IfModule !mod_env.c>
	LoadModule env_module modules/mod_env.so
</IfModule>
<IfModule !mod_rewrite.c>
	LoadModule rewrite_module modules/mod_rewrite.so
</IFModule>
<IfModule !mod_version.c>
	LoadModule version_module modules/mod_version.so
</IfModule>
<IfModule !mod_headers.c>
	LoadModule headers_module modules/mod_headers.so
</IfModule>
<IfModule !mod_setenvif.c>
	LoadModule setenvif_module modules/mod_setenvif.so
</IfModule>

<IfVersion < 2.4>
LockFile accept.lock
</IfVersion>

<IfVersion < 2.1>
<IfModule !mod_auth.c>
	LoadModule auth_module modules/mod_auth.so
</IfModule>
</IfVersion>

<IfVersion >= 2.1>
<IfModule !mod_auth_basic.c>
	LoadModule auth_basic_module modules/mod_auth_basic.so
</IfModule>
<IfModule !mod_authn_file.c>
	LoadModule authn_file_module modules/mod_authn_file.so
</IfModule>
<IfModule !mod_authz_user.c>
	LoadModule authz_user_module modules/mod_authz_user.so
</IfModule>
<IfModule !mod_authz_host.c>
	LoadModule authz_host_module modules/mod_authz_host.so
</IfModule>
</IfVersion>

<IfVersion >= 2.4>
<IfModule !mod_authn_core.c>
	LoadModule authn_core_module modules/mod_authn_core.so
</IfModule>
<IfModule !mod_authz_core.c>
	LoadModule authz_core_module modules/mod_authz_core.so
</IfModule>
<IfModule !mod_access_compat.c>
	LoadModule access_compat_module modules/mod_access_compat.so
</IfModule>
<IfModule !mod_mpm_prefork.c>
	LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
</IfModule>
<IfModule !mod_unixd.c>
	LoadModule unixd_module modules/mod_unixd.so
</IfModule>
</IfVersion>

PassEnv GIT_VALGRIND
PassEnv GIT_VALGRIND_OPTIONS
PassEnv GNUPGHOME
PassEnv ASAN_OPTIONS
PassEnv GIT_TRACE
PassEnv GIT_CONFIG_NOSYSTEM
PassEnv GIT_TEST_SIDEBAND_ALL

SetEnvIf Git-Protocol ".*" GIT_PROTOCOL=$0

Alias /dumb/ www/
Alias /auth/dumb/ www/auth/dumb/

<LocationMatch /smart/>
	SetEnv GIT_EXEC_PATH ${GIT_EXEC_PATH}
	SetEnv GIT_HTTP_EXPORT_ALL
</LocationMatch>
<LocationMatch /smart_noexport/>
	SetEnv GIT_EXEC_PATH ${GIT_EXEC_PATH}
</LocationMatch>
<LocationMatch /smart_custom_env/>
	SetEnv GIT_EXEC_PATH ${GIT_EXEC_PATH}
	SetEnv GIT_HTTP_EXPORT_ALL
	SetEnv GIT_COMMITTER_NAME "Custom User"
	SetEnv GIT_COMMITTER_EMAIL custom@example.com
</LocationMatch>
<LocationMatch /smart_namespace/>
	SetEnv GIT_EXEC_PATH ${GIT_EXEC_PATH}
	SetEnv GIT_HTTP_EXPORT_ALL
	SetEnv GIT_NAMESPACE ns
</LocationMatch>
<LocationMatch /smart_cookies/>
	SetEnv GIT_EXEC_PATH ${GIT_EXEC_PATH}
	SetEnv GIT_HTTP_EXPORT_ALL
	Header set Set-Cookie name=value
</LocationMatch>
<LocationMatch /smart_headers/>
	SetEnv GIT_EXEC_PATH ${GIT_EXEC_PATH}
	SetEnv GIT_HTTP_EXPORT_ALL
</LocationMatch>
<LocationMatch /one_time_sed/>
	SetEnv GIT_EXEC_PATH ${GIT_EXEC_PATH}
	SetEnv GIT_HTTP_EXPORT_ALL
</LocationMatch>
ScriptAliasMatch /error_git_upload_pack/(.*)/git-upload-pack error.sh/
ScriptAliasMatch /smart_*[^/]*/(.*) ${GIT_EXEC_PATH}/git-http-backend/$1
ScriptAlias /broken_smart/ broken-smart-http.sh/
ScriptAlias /error_smart/ error-smart-http.sh/
ScriptAlias /error/ error.sh/
ScriptAliasMatch /one_time_sed/(.*) apply-one-time-sed.sh/$1
<Directory ${GIT_EXEC_PATH}>
	Options FollowSymlinks
</Directory>
<Files broken-smart-http.sh>
	Options ExecCGI
</Files>
<Files error-smart-http.sh>
	Options ExecCGI
</Files>
<Files error.sh>
  Options ExecCGI
</Files>
<Files apply-one-time-sed.sh>
	Options ExecCGI
</Files>
<Files ${GIT_EXEC_PATH}/git-http-backend>
	Options ExecCGI
</Files>

RewriteEngine on
RewriteRule ^/dumb-redir/(.*)$ /dumb/$1 [R=301]
RewriteRule ^/smart-redir-perm/(.*)$ /smart/$1 [R=301]
RewriteRule ^/smart-redir-temp/(.*)$ /smart/$1 [R=302]
RewriteRule ^/smart-redir-auth/(.*)$ /auth/smart/$1 [R=301]
RewriteRule ^/smart-redir-limited/(.*)/info/refs$ /smart/$1/info/refs [R=301]
RewriteRule ^/ftp-redir/(.*)$ ftp://localhost:1000/$1 [R=302]

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]
RewriteRule ^/loop-redir/(.*)$ /loop-redir/x-$1 [R=302]

# redir-to/502/x?y -> really-redir-to?path=502/x&qs=y which returns 502
# redir-to/x?y -> really-redir-to?path=x&qs=y -> x?y
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^/redir-to/(.*)$ /really-redir-to?path=$1&qs=%1 [R=302]
RewriteCond %{QUERY_STRING} ^path=502/(.*)&qs=(.*)$
RewriteRule ^/really-redir-to$ - [R=502,L]
RewriteCond %{QUERY_STRING} ^path=(.*)&qs=(.*)$
RewriteRule ^/really-redir-to$ /%1?%2 [R=302]

# The first rule issues a client-side redirect to something
# that _doesn't_ look like a git repo. The second rule is a
# server-side rewrite, so that it turns out the odd-looking
# thing _is_ a git repo. The "[PT]" tells Apache to match
# the usual ScriptAlias rules for /smart.
RewriteRule ^/insane-redir/(.*)$ /intern-redir/$1/foo [R=301]
RewriteRule ^/intern-redir/(.*)/foo$ /smart/$1 [PT]

# Serve info/refs internally without redirecting, but
# issue a redirect for any object requests.
RewriteRule ^/redir-objects/(.*/info/refs)$ /dumb/$1 [PT]
RewriteRule ^/redir-objects/(.*/objects/.*)$ /dumb/$1 [R=301]

# Apache 2.2 does not understand <RequireAll>, so we use RewriteCond.
# And as RewriteCond does not allow testing for non-matches, we match
# the desired case first (one has abra, two has cadabra), and let it
# pass by marking the RewriteRule as [L], "last rule, do not process
# any other matching RewriteRules after this"), and then have another
# RewriteRule that matches all other cases and lets them fail via '[F]',
# "fail the request".
RewriteCond %{HTTP:x-magic-one} =abra
RewriteCond %{HTTP:x-magic-two} =cadabra
RewriteRule ^/smart_headers/.* - [L]
RewriteRule ^/smart_headers/.* - [F]

<IfDefine SSL>
LoadModule ssl_module modules/mod_ssl.so

SSLCertificateFile httpd.pem
SSLCertificateKeyFile httpd.pem
SSLRandomSeed startup file:/dev/urandom 512
SSLRandomSeed connect file:/dev/urandom 512
SSLSessionCache none
SSLMutex file:ssl_mutex
SSLEngine On
</IfDefine>

<Location /auth/>
	AuthType Basic
	AuthName "git-auth"
	AuthUserFile passwd
	Require valid-user
</Location>

<LocationMatch "^/auth-push/.*/git-receive-pack$">
	AuthType Basic
	AuthName "git-auth"
	AuthUserFile passwd
	Require valid-user
</LocationMatch>

<LocationMatch "^/auth-fetch/.*/git-upload-pack$">
	AuthType Basic
	AuthName "git-auth"
	AuthUserFile passwd
	Require valid-user
</LocationMatch>

RewriteCond %{QUERY_STRING} service=git-receive-pack [OR]
RewriteCond %{REQUEST_URI} /git-receive-pack$
RewriteRule ^/half-auth-complete/ - [E=AUTHREQUIRED:yes]

<Location /half-auth-complete/>
  Order Deny,Allow
  Deny from env=AUTHREQUIRED

  AuthType Basic
  AuthName "Git Access"
  AuthUserFile passwd
  Require valid-user
  Satisfy Any
</Location>

<IfDefine DAV>
	LoadModule dav_module modules/mod_dav.so
	LoadModule dav_fs_module modules/mod_dav_fs.so

	DAVLockDB DAVLock
	<Location /dumb/>
		Dav on
	</Location>
	<Location /auth/dumb>
		Dav on
	</Location>
</IfDefine>

<IfDefine SVN>
	LoadModule dav_svn_module modules/mod_dav_svn.so

	<Location /${LIB_HTTPD_SVN}>
		DAV svn
		SVNPath "${LIB_HTTPD_SVNPATH}"
	</Location>
</IfDefine>
