## ## 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 "vertical tab" 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 "vertical tab" 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