##
## FileETag test config
##
AllowOverride All
Order Deny,Allow
# Satisfy Any
##
## Options override test config
##
AllowOverride All
Options -Includes
##
## AcceptPathInfo test config
##
# default is AcceptPathInfo default
Order Deny,Allow
Allow from all
AddHandler cgi-script .sh
Options +ExecCGI +Includes +Indexes
DirectoryIndex index.shtml
AddOutputFilter INCLUDES shtml
AcceptPathInfo on
AcceptPathInfo off
##
## mod_php4/mod_php5 test config
##
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
# t/htdocs/php/arg.php et al require argc/argv in _SERVER
php_admin_flag "register_argc_argv" 1
Options MultiViews
##
## mod_expires test config
##
ExpiresActive On
ExpiresDefault "modification plus \
10 years 6 months 2 weeks \
3 days 12 hours 30 minutes 19 seconds"
ExpiresByType text/plain M60
ExpiresByType image/gif A120
ExpiresByType image/jpeg A86400
AllowOverride All
##
## mod_negotiation test config
##
AddLanguage en .en
AddLanguage fr .fr
AddLanguage de .de
AddLanguage fu .fu
AddHandler type-map .var
CacheNegotiatedDocs
CacheNegotiatedDocs On
Options +MultiViews
LanguagePriority en fr de fu
Options +MultiViews
LanguagePriority de en fr fu
Options +MultiViews
LanguagePriority fr en de fu
Options +MultiViews
LanguagePriority fu fr en de
Options +MultiViews +ExecCGI
MultiviewsMatch any
AddHandler cgi-script .pl
##
## mod_rewrite test config
##
RewriteEngine On
RewriteLog @SERVERROOT@/logs/rewrite_log
RewriteLogLevel 9
= 2.3.6>
LogLevel rewrite:trace8
RewriteLock @SERVERROOT@/logs/rewrite_lock
= 2.3.4>
# mutex created automatically
# config needed only if file-based mutexes are used and
# default lock file dir is inappropriate
# Mutex file:/path/to/lockdir rewrite-map
RewriteLock @SERVERROOT@/logs/rewrite_lock
RewriteMap numbers-txt txt:@SERVERROOT@/htdocs/modules/rewrite/numbers.txt
RewriteMap numbers-rnd rnd:@SERVERROOT@/htdocs/modules/rewrite/numbers.rnd
#RewriteMap numbers-dbm dbm:@SERVERROOT@/htdocs/modules/rewrite/numbers.dbm
RewriteMap numbers-prg prg:@SERVERROOT@/htdocs/modules/rewrite/numbers.pl
RewriteMap lower int:tolower
RewriteEngine On
= 2.5.0>
RewriteOptions inherit LongURLOptimization
RewriteOptions inherit
RewriteRule ^forbidden$ - [F]
RewriteRule ^gone$ - [G]
RewriteRule ^perm$ - [R=permanent]
RewriteRule ^temp$ - [R]
RewriteRule ^test\.blah$ - [T=text/html]
## config for testing >=< conditions
RewriteCond %{HTTP_ACCEPT} =lucky13
RewriteRule ^$ lucky13.html [L]
RewriteCond %{HTTP_ACCEPT} >6
RewriteRule ^$ big.html [L]
RewriteCond %{HTTP_ACCEPT} <1
RewriteRule ^$ zero.html [L]
## config for testing rewrite maps
RewriteCond %{HTTP_ACCEPT} ^(TXT|RND|DBM|PRG)$
RewriteRule ^([1-6])$ - [C,E=MAPTYPE:${lower:%1}]
RewriteCond %{ENV:MAPTYPE} =txt
RewriteRule ^([1-6])$ ${numbers-txt:$1}.html [S=3]
RewriteCond %{ENV:MAPTYPE} =rnd
RewriteRule ^([1-6])$ ${numbers-rnd:$1}.html [S=2]
RewriteCond %{ENV:MAPTYPE} =dbm
RewriteRule ^([1-6])$ ${numbers-dbm:$1}.html [S=1]
RewriteCond %{ENV:MAPTYPE} =prg
RewriteRule ^([1-6])$ ${numbers-prg:$1}.html [L]
## Proxy pass-through
RewriteRule ^proxy.html$ http://@SERVERNAME@:@PORT@/modules/rewrite/lucky13.html [L,P]
## Query-string append
RewriteRule ^qsa.html$ @SERVERROOT@/htdocs/modules/cgi/env.pl?foo=bar [QSA,L]
## Proxy and QSA
RewriteRule ^proxy-qsa.html$ http://@SERVERNAME@:@PORT@/modules/cgi/env.pl?foo=bar [QSA,L,P]
## Redirect, directory context
RewriteRule ^redirect-dir.html$ http://@SERVERNAME@:@PORT@/foobar.html [L,R=301]
# PR 58231: Vary header not added to the response if the RewriteCond/Rule
# combination is in a directory context.
# Vary:Host header must not also be returned in any case.
RewriteCond %{HTTP_HOST} directory-domain
RewriteRule vary3.html vary4.html [L]
RewriteCond %{HTTP_USER_AGENT} directory-agent
RewriteRule vary3.html vary4.html [L]
RewriteCond %{HTTP:Accept} directory-accept [OR]
RewriteCond %{HTTP_REFERER} directory-referer
RewriteRule vary3.html vary4.html [L]
# PR 58231: Vary:Host header mistakenly added to the response
RewriteCond %{HTTP_HOST} test1
RewriteRule /modules/rewrite/vary1.html /modules/rewrite/vary2.html [L]
RewriteCond %{HTTP:Host} test2
RewriteRule /modules/rewrite/vary1.html /modules/rewrite/vary2.html [L]
### Proxy pass-through to env.pl
RewriteRule ^/modules/rewrite/proxy2/(.*)$ http://@SERVERNAME@:@PORT@/modules/cgi/$1 [L,P]
### Pass-through conditional on QUERY_STRING
RewriteCond %{QUERY_STRING} horse=trigger
RewriteRule ^/modules/rewrite/proxy3/(.*)$ http://@SERVERNAME@:@PORT@/modules/cgi/$1 [L,P]
### Redirect, server context
RewriteRule ^/modules/rewrite/redirect.html$ http://@SERVERNAME@:@PORT@/foobar.html [L,R=301]
DocumentRoot @SERVERROOT@/htdocs/modules/proxy
RewriteEngine On
RewriteRule (.*) http://localhost$1 [P]
# PR60478: pathological rewrite expansion
= 2.4>
# This pair of RewriteRules will loop but should eventually 500 once we
# reach LimitRequestLine * 2 bytes. (In this case, 128 * 2 = 256.)
RewriteRule ^(.*)X(.*)$ $1x$2
# Don't run the test machine out of memory on failure, just stop the loop
RewriteCond expr "util_strlen(%{REQUEST_FILENAME}) -lt 257"
RewriteRule X - [N]
DocumentRoot @SERVERROOT@/htdocs/modules/proxy
ProxyPass /reverse/notproxy/ !
ProxyPass /reverse/ http://@SERVERNAME@:@PORT@/
ProxyPassReverse /reverse/ http://@SERVERNAME@:@PORT@/
ProxyPassReverseCookieDomain local remote
ProxyPassReverseCookiePath /local /remote
= 2.4.7>
ProxyPass /uds/ unix:/tmp/test-ptf.sock|http:
ProxyPass http://@SERVERNAME@:@PORT@/
SetEnvIf Request_URI "^/reverse/locproxy/index.html$" no-proxy
= 2.3.10>
ProxyAddHeaders off
ProxyPass /reverse/ http://@SERVERNAME@:@PORT@/
# Noop config to trigger merging bug.
Require all granted
= 2.2.5>
DocumentRoot @SERVERROOT@/htdocs/modules/proxy
ProxyPassMatch (.*) http://@SERVERNAME@$1
##
## @ACCESS_MODULE@ test config
##
AllowOverride Limit
##
## mod_cgi test config
##
AddHandler cgi-script .sh
AddHandler cgi-script .pl
ScriptLog @SERVERROOT@/logs/mod_cgi.log
ScriptLogLength 40960
ScriptLogLength 8192
ScriptLogBuffer 256
Options +ExecCGI
AcceptPathInfo on
AcceptPathInfo off
AcceptPathInfo default
##
## mod_alias test config
##
Alias /alias @SERVERROOT@/htdocs/modules/alias
Alias /bogu /bogus/path/to/nothing
AliasMatch /ali([0-9]) @SERVERROOT@/htdocs/modules/alias/$1.html
Redirect permanent /perm http://@SERVERNAME@:@PORT@/alias
Redirect temp /temp http://@SERVERNAME@:@PORT@/alias
Redirect seeother /seeother http://@SERVERNAME@:@PORT@/alias
Redirect gone /gone
Redirect 403 /forbid
RedirectMatch permanent /p([0-9]) http://@SERVERNAME@:@PORT@/alias/$1.html
RedirectMatch temp /t([0-9]) http://@SERVERNAME@:@PORT@/alias/$1.html
RedirectMatch seeother /s([0-9]) http://@SERVERNAME@:@PORT@/alias/$1.html
RedirectMatch gone /g([0-9])
RedirectMatch 403 /f([0-9])
RedirectTemp /temp2 http://@SERVERNAME@:@PORT@/alias/index.html
RedirectPermanent /perm2 http://@SERVERNAME@:@PORT@/alias/index.html
Redirect permanent /modules/alias/redirect-me http://@SERVERNAME@:@PORT@/modules/alias/5.html
ScriptAlias /cgi @SERVERROOT@/htdocs/modules/alias
ScriptAliasMatch /aliascgi-(.*) @SERVERROOT@/htdocs/modules/alias/$1
= 2.4.19>
[0-9])>
Alias @SERVERROOT@/htdocs/modules/alias/%{env:MATCH_NUMBER}.html
.*)>
ScriptAlias @SERVERROOT@/htdocs/modules/alias/%{env:MATCH_SUFFIX}
[0-9])>
Redirect permanent http://@SERVERNAME@:@PORT@/alias/%{env:MATCH_NUMBER}.html
[0-9])>
Redirect temp http://@SERVERNAME@:@PORT@/alias/%{env:MATCH_NUMBER}.html
[0-9])>
Redirect seeother http://@SERVERNAME@:@PORT@/alias/%{env:MATCH_NUMBER}.html
Redirect gone
Redirect 403
Alias /manual @inherit_documentroot@/manual
Order deny,allow
Deny from all
Allow from @servername@
##
## mod_asis test config
##
AddHandler send-as-is asis
##
## mod_headers test config
##
AllowOverride All
AllowOverride All
Header add mod_headers_foo bar
# Should match anything mapped to disk
Header append DMMATCH1 1
##
## mod_dir test config
##
AllowOverride Indexes
##
## mod_env test config
##
PassEnv APACHE_TEST_HOSTNAME
SetEnv ENV_TEST "mod_env test environment variable"
SetEnv ENV_TEST_EMPTY
UnsetEnv UNSET
PassEnv APACHE_TEST_HOSTTYPE
UnsetEnv APACHE_TEST_HOSTTYPE
SetEnv NOT_HERE "this will not be here"
UnsetEnv NOT_HERE
Options +Includes
##
## mod_setenvif test config
##
Options +Includes
AllowOverride All
##
## mod_dav test config
##
DAVLockDB @SERVERROOT@/logs/davlock.db
DAV On
##
## mod_autoindex test config
##
Options +Indexes
AllowOverride Indexes
Options +Indexes
AllowOverride All
##
## LimitRequest* directive testing
##
LimitRequestLine 128
LimitRequestFieldSize 1024
LimitRequestFields 32
LimitRequestBody 65536
##
## mod_echo test config
##
ProtocolEcho On
ProtocolEcho On
SSLEngine On
##
## mod_deflate test config
##
SetOutputFilter DEFLATE
Options +Includes
DirectoryIndex default.html
AddOutputFilter INCLUDES shtml
SetOutputFilter DEFLATE
SetOutputFilter BUCKETEER;DEFLATE
SetOutputFilter DEFLATE
SetInputFilter DEFLATE
SetHandler echo_post
### pr17629.t
SetOutputFilter CASEFILTER
##
## Test config for security issues
##
Options +Includes
AllowOverride All
Order allow,deny
Allow from all
# for CVE-2005-3352 test:
AddHandler imap-file map
Options +Indexes
Satisfy Any
##
## Digest test config
##
Alias /digest @DocumentRoot@
Require valid-user
AuthType Digest
AuthName realm1
# 2.0
AuthDigestFile @ServerRoot@/realm1
# 2.1
AuthUserFile realm1
SetEnvIf X-Browser "MSIE" AuthDigestEnableQueryStringHack=On
##
## authz_core test config: authz by user or by env (modules/aaa.t)
##
Alias /authz/digest @DocumentRoot@
Require valid-user
Require env allowed
AuthType Digest
AuthName realm2
AuthUserFile realm2
Alias /authz/basic @DocumentRoot@
Require valid-user
Require env allowed
AuthType Basic
AuthName basic1
AuthUserFile basic1
= 2.3.11>
Alias /authz/fail/401 @DocumentRoot@
Alias /authz/fail/403 @DocumentRoot@
Require user foo
AuthType Basic
AuthName basic1
AuthUserFile basic1
AuthzSendForbiddenOnFailure On
Alias /authz/form @DocumentRoot@
AuthFormLoginRequiredLocation http://@SERVERNAME@:@PORT@/authz/login.html
AuthFormLoginSuccessLocation http://@SERVERNAME@:@PORT@/authz/form/
AuthFormProvider file
AuthType Form
AuthUserFile form1
AuthName form1
Session On
SessionCookieName session path=/
Require valid-user
Require env allowed
SetHandler form-login-handler
Require all granted
SetEnvIf X-Allowed "yes" allowed
##
## authz_core test config: authz merging (modules/authz_core.t)
##
AllowOverride all
SetEnvIf X-Allowed1 "yes" allowed1
SetEnvIf X-Allowed2 "yes" allowed2
SetEnvIf X-Allowed3 "yes" allowed3
SetEnvIf X-Allowed4 "yes" allowed4
##
## ErrorDocument handling
## create it's own virtual host so it doesn't interfere
## with other tests for 404 messages
##
ErrorDocument 404 "per-server 404
ErrorDocument 404 "per-dir 404
# nothing here
ErrorDocument 404 /modules/expires/expire.html
# special "default" value = restore canned error response
ErrorDocument 404 default
ErrorDocument 404 "testing merge
# 404 should be inherited from /apache
ErrorDocument 500 "hmph
Header always set TestDuplicateHeader "shouldnotbeduplicated"
SetOutputFilter BUCKETEER
ExtendedStatus On
FilterDeclare xother CONTENT_SET
= 2.3.9>
FilterProvider xother CASEFILTER "resp('X-Foo') == 'bar'"
FilterProvider xother CASEFILTER resp=X-Foo bar
FilterChain xother
Options +Includes
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
FilterDeclare pr49328 CONTENT_SET
FilterProvider pr49328 DEFLATE resp=Content-Type $text/
= 2.3.0>
FilterProvider pr49328 DEFLATE "$content-type = /text\//"
= 2.3.9>
FilterProvider pr49328 DEFLATE "%{CONTENT_TYPE} =~ m!text/!"
FilterChain pr49328
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType CASEFILTER application/xml
AddOutputFilterByType CASEFILTER text/plain
##
## LogLevel configuration
##
= 2.3.6>
LogLevel info core:crit
LogLevel crit core:info
LogLevel crit
LogLevel core:info
LogLevel crit
LogLevel info
LogLevel core:crit
LogLevel info
AllowOverride All
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
Options +Includes
AllowOverride All
##
## expression parser test config
##
= 2.3.9>
AllowOverride All
AllowOverrideList LogMessage
= 2.3.11>
ProxyPass /if_sec/proxy/ http://@SERVERNAME@:@PORT@/
# Directory context
Header merge Out-Trace dir1
Header merge Out-Trace nested11
Header merge Out-Trace nested111
Header merge Out-Trace nested112
Header merge Out-Trace nested113
Header merge Out-Trace dir2
Header merge Out-Trace dir_files1
# Location context
Header merge Out-Trace locp1
Header merge Out-Trace locp2
Header merge Out-Trace loc1
Header merge Out-Trace nested11
Header merge Out-Trace nested111
Header merge Out-Trace nested112
Header merge Out-Trace nested113
Header merge Out-Trace loc2
# Files context
Header merge Out-Trace files2
Header merge Out-Trace nested11
Header merge Out-Trace nested111
Header merge Out-Trace nested112
Header merge Out-Trace nested113
# Global context
Header merge Out-Trace global1
Header merge Out-Trace nested11
Header merge Out-Trace nested111
Header merge Out-Trace nested112
Header merge Out-Trace nested113
= 2.3.15>
AliasMatch /maxranges/([^/])+/ @SERVERROOT@/htdocs/apache/chunked/byteranges.txt
MaxRanges none
MaxRanges default
MaxRanges 1
MaxRanges 2
MaxRanges none
MaxRanges unlimited
= 2.2.21>
AliasMatch /maxranges/([^/])+/ @SERVERROOT@/htdocs/apache/chunked/byteranges.txt
MaxRanges none
MaxRanges default
MaxRanges 1
MaxRanges 2
MaxRanges none
MaxRanges unlimited
AddHandler lua-script .lua
LuaHookTranslateName @SERVERROOT@/htdocs/modules/lua/translate.lua translate_name
LuaHookTranslateName @SERVERROOT@/htdocs/modules/lua/translate.lua translate_name2
LuaInherit parent-last
LuaHookTranslateName @SERVERROOT@/htdocs/modules/lua/translate.lua translate_name2
LuaInherit parent-first
LuaHookTranslateName @SERVERROOT@/htdocs/modules/lua/translate.lua translate_name2
# default: LuaInherit parent-first
#
# Strict HTTP mode test config
#
= 2.2.32>
Options +ExecCGI
AddHandler cgi-script .pl
DocumentRoot @SERVERROOT@/htdocs/
HttpProtocolOptions Unsafe Allow0.9
# Use two examples to ensure multiple bad headers are caught
# Note the vertical tab (^K or 0x0B) embedded in the header value
Header always set X-Bad "verticaltab"
Header always set X?Bad "badly named header"
DocumentRoot @SERVERROOT@/htdocs/
HttpProtocolOptions Strict Require1.0 RegisteredMethods
# Use two examples to ensure multiple bad headers are caught
# Note the vertical tab (^K or 0x0B) embedded in the header value
Header always set X-Bad "verticaltab"
Header always set X?Bad "badly named header"
#
# mod_brotli test config
#
# Reuse existing data for mod_deflate
Alias /only_brotli @SERVERROOT@/htdocs/modules/deflate
SetOutputFilter BROTLI_COMPRESS
Alias /brotli_and_deflate @SERVERROOT@/htdocs/modules/deflate
SetOutputFilter BROTLI_COMPRESS;DEFLATE
#
# test config (see t/apache/iffile.t)
#
= 2.4.34>
# First, the IfFiles that should succeed.
Header merge X-Out success1
Header merge X-Out success2
Header merge X-Out success3
Header merge X-Out success4
Header merge X-Out success5
# Followed by the IfFiles that should fail.
Header merge X-Out fail1
Header merge X-Out fail2
Header merge X-Out fail3
Header merge X-Out fail4
Header merge X-Out fail5
#
# t/modules/ext_filter.t test config
#
ExtFilterDefine foo-to-bar mode=output cmd="@SERVERROOT@/htdocs/modules/ext_filter/eval-cmd.pl s,foo,bar,g"
ExtFilterDefine ifoo-to-bar mode=input cmd="@SERVERROOT@/htdocs/modules/ext_filter/eval-cmd.pl s,foo,bar,g"
ExtFilterDefine sleepy-cat-out mode=output cmd=@SERVERROOT@/htdocs/modules/ext_filter/sleepycat.pl
ExtFilterDefine sleepy-cat-in mode=input cmd=@SERVERROOT@/htdocs/modules/ext_filter/sleepycat.pl
AliasMatch /apache/extfilter/[^/]+/(.*) @DocumentRoot@/$1
SetOutputFilter foo-to-bar
SetOutputFilter sleepy-cat-out
SetInputFilter ifoo-to-bar
SetOutputFilter foo-to-bar
LimitRequestBody 6
##
## mod_ssl_ct configuration
##
# If mod_ssl_ct is loaded, CTSCTStorage is needed to pass the configtest.
CTSCTStorage .
##
## mod_remote_ip configuration
##
DocumentRoot @SERVERROOT@/htdocs/modules/remoteip
= 2.4.30>
RemoteIPProxyProtocol On
AliasMatch ^/apache/ratelimit/autoindex/$ @SERVERROOT@/htdocs/
AliasMatch ^/apache/ratelimit/$ @SERVERROOT@/htdocs/index.html
Options +Indexes
SetOutputFilter RATE_LIMIT
SetEnv rate-limit 1024
SetEnv rate-initial-burst 512
SetHandler random_chunk
SetHandler reflector
# Do not set any filter
ReflectorHeader header2reflect
ReflectorHeader header2update header2updateUpdated
SetHandler reflector
SetOutputFilter DEFLATE
ReflectorHeader header2reflect
ReflectorHeader header2update header2updateUpdated
Options +Indexes
AllowMethods GET
AllowMethods HEAD
AllowMethods POST
AllowMethods reset
SetHandler reflector
SetInputFilter BUFFER
SetHandler reflector
SetOutputFilter BUFFER
SetHandler reflector
SetInputFilter BUFFER
SetOutputFilter BUFFER
SetOutputFilter DATA
CookieTracking on
CookieName usertrack_test
CookieExpires "60 seconds"
Session On
SessionCookieName thisisatest path=/
SessionMaxAge 1
CheckSpelling on
CheckSpelling on
CheckCaseOnly on