Version in base suite: 2.4.68-1~deb13u1
Base version: apache2_2.4.68-1~deb13u1
Target version: apache2_2.4.69-1~deb13u1
Base file: /srv/ftp-master.debian.org/ftp/pool/main/a/apache2/apache2_2.4.68-1~deb13u1.dsc
Target file: /srv/ftp-master.debian.org/policy/pool/main/a/apache2/apache2_2.4.69-1~deb13u1.dsc
/srv/release.debian.org/tmp/IjglZ5i9op/apache2-2.4.69/docs/icons/tar.gif |binary
/srv/release.debian.org/tmp/IjglZ5i9op/apache2-2.4.69/docs/icons/tar.png |binary
/srv/release.debian.org/tmp/IjglZ5i9op/apache2-2.4.69/docs/manual/images/rewrite_l_flag_looping.png |binary
/srv/release.debian.org/tmp/IjglZ5i9op/apache2-2.4.69/docs/manual/images/rewrite_module_order.png |binary
/srv/release.debian.org/tmp/IjglZ5i9op/apache2-2.4.69/docs/manual/images/rewrite_path_stripping.png |binary
/srv/release.debian.org/tmp/IjglZ5i9op/apache2-2.4.69/docs/manual/images/rewrite_simplified_overview.png |binary
/srv/release.debian.org/tmp/IjglZ5i9op/apache2-2.4.69/test/pytest_suite/t/htdocs/modules/data/SupportApache-small.png |binary
/srv/release.debian.org/tmp/IjglZ5i9op/apache2-2.4.69/test/pytest_suite/t/htdocs/modules/deflate/apache_pb.gif |binary
/srv/release.debian.org/tmp/IjglZ5i9op/apache2-2.4.69/test/pytest_suite/t/htdocs/modules/deflate/asf_logo_wide.jpg |binary
/srv/release.debian.org/tmp/IjglZ5i9op/apache2-2.4.69/test/pytest_suite/t/htdocs/modules/rewrite/foo bar.html | 1
/srv/release.debian.org/tmp/IjglZ5i9op/apache2-2.4.69/test/pytest_suite/t/htdocs/modules/rewrite/numbers.dbm.db |binary
apache2-2.4.69/.github/workflows/linux.yml | 60
apache2-2.4.69/.github/workflows/windows.yml | 8
apache2-2.4.69/CHANGES | 164 +
apache2-2.4.69/CMakeLists.txt | 70
apache2-2.4.69/README | 16
apache2-2.4.69/README.CHANGES | 54
apache2-2.4.69/build/ltmain.sh | 325 +-
apache2-2.4.69/configure | 30
apache2-2.4.69/debian/changelog | 12
apache2-2.4.69/debian/patches/fhs_compliance.patch | 2
apache2-2.4.69/docs/manual/convenience.map | 6
apache2-2.4.69/docs/manual/env.html.en | 8
apache2-2.4.69/docs/manual/env.html.fr.utf8 | 36
apache2-2.4.69/docs/manual/glossary.html.fr.utf8 | 30
apache2-2.4.69/docs/manual/howto/access.html.en | 67
apache2-2.4.69/docs/manual/howto/access.html.fr.utf8 | 87
apache2-2.4.69/docs/manual/howto/auth.html.en | 158
apache2-2.4.69/docs/manual/howto/auth.html.fr.utf8 | 189 -
apache2-2.4.69/docs/manual/howto/cgi.html.en | 190 -
apache2-2.4.69/docs/manual/howto/cgi.html.fr.utf8 | 179 -
apache2-2.4.69/docs/manual/howto/htaccess.html.en | 121
apache2-2.4.69/docs/manual/howto/htaccess.html.fr.utf8 | 130
apache2-2.4.69/docs/manual/howto/htaccess.html.pt-br.utf8 | 2
apache2-2.4.69/docs/manual/howto/http2.html.en | 206 -
apache2-2.4.69/docs/manual/howto/http2.html.fr.utf8 | 212 -
apache2-2.4.69/docs/manual/howto/public_html.html.en | 62
apache2-2.4.69/docs/manual/howto/public_html.html.es | 4
apache2-2.4.69/docs/manual/howto/public_html.html.fr.utf8 | 62
apache2-2.4.69/docs/manual/howto/public_html.html.tr.utf8 | 1
apache2-2.4.69/docs/manual/howto/reverse_proxy.html.en | 184 -
apache2-2.4.69/docs/manual/howto/reverse_proxy.html.fr.utf8 | 202 -
apache2-2.4.69/docs/manual/howto/ssi.html.en | 557 +--
apache2-2.4.69/docs/manual/howto/ssi.html.es | 4
apache2-2.4.69/docs/manual/howto/ssi.html.fr.utf8 | 574 +--
apache2-2.4.69/docs/manual/images/README.md | 97
apache2-2.4.69/docs/manual/images/rewrite_l_flag_looping.svg | 153
apache2-2.4.69/docs/manual/images/rewrite_module_order.svg | 110
apache2-2.4.69/docs/manual/images/rewrite_path_stripping.svg | 142
apache2-2.4.69/docs/manual/images/rewrite_simplified_overview.svg | 113
apache2-2.4.69/docs/manual/install.html.en | 223 -
apache2-2.4.69/docs/manual/install.html.fr.utf8 | 334 --
apache2-2.4.69/docs/manual/logs.html.en | 233 -
apache2-2.4.69/docs/manual/logs.html.fr.utf8 | 270 -
apache2-2.4.69/docs/manual/misc/relevant_standards.html.en | 299 +
apache2-2.4.69/docs/manual/misc/relevant_standards.html.fr.utf8 | 322 +-
apache2-2.4.69/docs/manual/misc/relevant_standards.html.ko.euc-kr | 2
apache2-2.4.69/docs/manual/misc/security_tips.html.en | 6
apache2-2.4.69/docs/manual/misc/security_tips.html.fr.utf8 | 4
apache2-2.4.69/docs/manual/mod/core.html.fr.utf8 | 40
apache2-2.4.69/docs/manual/mod/directive-dict.html.fr.utf8 | 23
apache2-2.4.69/docs/manual/mod/event.html.en | 7
apache2-2.4.69/docs/manual/mod/event.html.fr.utf8 | 9
apache2-2.4.69/docs/manual/mod/mod_access_compat.html.en | 10
apache2-2.4.69/docs/manual/mod/mod_access_compat.html.fr.utf8 | 10
apache2-2.4.69/docs/manual/mod/mod_actions.html.fr.utf8 | 24
apache2-2.4.69/docs/manual/mod/mod_brotli.html.fr.utf8 | 52
apache2-2.4.69/docs/manual/mod/mod_cern_meta.html.en | 8
apache2-2.4.69/docs/manual/mod/mod_cern_meta.html.fr.utf8 | 8
apache2-2.4.69/docs/manual/mod/mod_data.html.fr.utf8 | 5
apache2-2.4.69/docs/manual/mod/mod_dbd.html.fr.utf8 | 2
apache2-2.4.69/docs/manual/mod/mod_deflate.html.fr.utf8 | 76
apache2-2.4.69/docs/manual/mod/mod_heartmonitor.html.fr.utf8 | 10
apache2-2.4.69/docs/manual/mod/mod_imagemap.html.en | 8
apache2-2.4.69/docs/manual/mod/mod_imagemap.html.fr.utf8 | 8
apache2-2.4.69/docs/manual/mod/mod_log_config.html.fr.utf8 | 6
apache2-2.4.69/docs/manual/mod/mod_macro.html.fr.utf8 | 11
apache2-2.4.69/docs/manual/mod/mod_md.html.en | 68
apache2-2.4.69/docs/manual/mod/mod_md.html.fr.utf8 | 96
apache2-2.4.69/docs/manual/mod/mod_mime.html.fr.utf8 | 3
apache2-2.4.69/docs/manual/mod/mod_privileges.html.en | 18
apache2-2.4.69/docs/manual/mod/mod_privileges.html.fr.utf8 | 18
apache2-2.4.69/docs/manual/mod/mod_proxy.html.en | 28
apache2-2.4.69/docs/manual/mod/mod_proxy.html.fr.utf8 | 31
apache2-2.4.69/docs/manual/mod/mod_proxy_scgi.html.fr.utf8 | 2
apache2-2.4.69/docs/manual/mod/mod_proxy_wstunnel.html.en | 4
apache2-2.4.69/docs/manual/mod/mod_proxy_wstunnel.html.fr.utf8 | 4
apache2-2.4.69/docs/manual/mod/mod_rewrite.html.en | 344 +-
apache2-2.4.69/docs/manual/mod/mod_rewrite.html.fr.utf8 | 805 ++---
apache2-2.4.69/docs/manual/mod/mod_socache_redis.html.fr.utf8 | 8
apache2-2.4.69/docs/manual/mod/mod_ssl.html.en | 28
apache2-2.4.69/docs/manual/mod/mod_ssl.html.fr.utf8 | 29
apache2-2.4.69/docs/manual/mod/mod_unique_id.html.fr.utf8 | 76
apache2-2.4.69/docs/manual/mod/module-dict.html.en | 7
apache2-2.4.69/docs/manual/mod/module-dict.html.fr.utf8 | 7
apache2-2.4.69/docs/manual/mod/module-dict.html.ja.utf8 | 4
apache2-2.4.69/docs/manual/mod/module-dict.html.ko.euc-kr | 2
apache2-2.4.69/docs/manual/mod/module-dict.html.tr.utf8 | 1
apache2-2.4.69/docs/manual/mod/mpm_netware.html.en | 2
apache2-2.4.69/docs/manual/mod/mpm_netware.html.fr.utf8 | 1
apache2-2.4.69/docs/manual/mod/mpm_winnt.html.en | 2
apache2-2.4.69/docs/manual/mod/mpm_winnt.html.fr.utf8 | 1
apache2-2.4.69/docs/manual/mod/mpmt_os2.html.en | 2
apache2-2.4.69/docs/manual/mod/mpmt_os2.html.fr.utf8 | 1
apache2-2.4.69/docs/manual/mod/overrides.html.fr.utf8 | 163 -
apache2-2.4.69/docs/manual/mod/prefork.html.en | 7
apache2-2.4.69/docs/manual/mod/prefork.html.fr.utf8 | 8
apache2-2.4.69/docs/manual/mod/prefork.html.tr.utf8 | 1
apache2-2.4.69/docs/manual/mod/quickreference.html.de | 40
apache2-2.4.69/docs/manual/mod/quickreference.html.en | 40
apache2-2.4.69/docs/manual/mod/quickreference.html.es | 40
apache2-2.4.69/docs/manual/mod/quickreference.html.fr.utf8 | 50
apache2-2.4.69/docs/manual/mod/quickreference.html.ja.utf8 | 32
apache2-2.4.69/docs/manual/mod/quickreference.html.ko.euc-kr | 28
apache2-2.4.69/docs/manual/mod/quickreference.html.tr.utf8 | 40
apache2-2.4.69/docs/manual/mod/quickreference.html.zh-cn.utf8 | 40
apache2-2.4.69/docs/manual/mod/worker.html.en | 7
apache2-2.4.69/docs/manual/mod/worker.html.fr.utf8 | 8
apache2-2.4.69/docs/manual/mod/worker.html.tr.utf8 | 1
apache2-2.4.69/docs/manual/mpm.html.en | 2
apache2-2.4.69/docs/manual/mpm.html.es | 4
apache2-2.4.69/docs/manual/mpm.html.fr.utf8 | 2
apache2-2.4.69/docs/manual/mpm.html.tr.utf8 | 1
apache2-2.4.69/docs/manual/platform/netware.html.fr.utf8 | 84
apache2-2.4.69/docs/manual/platform/win_compiling.html.en | 4
apache2-2.4.69/docs/manual/platform/win_compiling.html.fr.utf8 | 4
apache2-2.4.69/docs/manual/programs/htcacheclean.html.fr.utf8 | 16
apache2-2.4.69/docs/manual/programs/htdbm.html.fr.utf8 | 17
apache2-2.4.69/docs/manual/programs/httpd.html.fr.utf8 | 27
apache2-2.4.69/docs/manual/rewrite/access.html.fr.utf8 | 292 -
apache2-2.4.69/docs/manual/rewrite/advanced.html.fr.utf8 | 357 --
apache2-2.4.69/docs/manual/rewrite/avoid.html.fr.utf8 | 433 ++
apache2-2.4.69/docs/manual/rewrite/flags.html.en | 138
apache2-2.4.69/docs/manual/rewrite/flags.html.fr.utf8 | 500 ++-
apache2-2.4.69/docs/manual/rewrite/htaccess.html.en | 10
apache2-2.4.69/docs/manual/rewrite/htaccess.html.fr.utf8 | 411 ++
apache2-2.4.69/docs/manual/rewrite/index.html.fr.utf8 | 100
apache2-2.4.69/docs/manual/rewrite/intro.html.en | 14
apache2-2.4.69/docs/manual/rewrite/intro.html.fr.utf8 | 188 -
apache2-2.4.69/docs/manual/rewrite/proxy.html.fr.utf8 | 74
apache2-2.4.69/docs/manual/rewrite/remapping.html.fr.utf8 | 648 ++--
apache2-2.4.69/docs/manual/rewrite/rewritemap.html.fr.utf8 | 136
apache2-2.4.69/docs/manual/rewrite/tech.html.en | 7
apache2-2.4.69/docs/manual/rewrite/tech.html.fr.utf8 | 263 +
apache2-2.4.69/docs/manual/rewrite/vhosts.html.fr.utf8 | 24
apache2-2.4.69/docs/manual/style/css/manual.css | 5
apache2-2.4.69/docs/manual/style/version.ent | 2
apache2-2.4.69/docs/manual/suexec.html.fr.utf8 | 2
apache2-2.4.69/docs/manual/urlmapping.html.en | 8
apache2-2.4.69/docs/manual/urlmapping.html.fr.utf8 | 16
apache2-2.4.69/httpd.spec | 2
apache2-2.4.69/include/ap_release.h | 2
apache2-2.4.69/include/httpd.h | 3
apache2-2.4.69/modules/aaa/config.m4 | 6
apache2-2.4.69/modules/aaa/mod_auth_digest.c | 810 ++---
apache2-2.4.69/modules/aaa/mod_authn_socache.c | 2
apache2-2.4.69/modules/aaa/mod_authnz_ldap.c | 494 +--
apache2-2.4.69/modules/cache/mod_cache.c | 8
apache2-2.4.69/modules/cluster/mod_heartmonitor.c | 67
apache2-2.4.69/modules/dav/fs/dbm.c | 26
apache2-2.4.69/modules/dav/fs/mod_dav_fs.c | 41
apache2-2.4.69/modules/dav/fs/repos.c | 58
apache2-2.4.69/modules/dav/fs/repos.h | 6
apache2-2.4.69/modules/dav/main/mod_dav.c | 2
apache2-2.4.69/modules/dav/main/mod_dav.h | 5
apache2-2.4.69/modules/dav/main/props.c | 6
apache2-2.4.69/modules/dav/main/util.c | 9
apache2-2.4.69/modules/filters/mod_charset_lite.c | 5
apache2-2.4.69/modules/filters/mod_filter.c | 2
apache2-2.4.69/modules/filters/mod_proxy_html.c | 3
apache2-2.4.69/modules/filters/mod_substitute.c | 10
apache2-2.4.69/modules/filters/mod_xml2enc.c | 19
apache2-2.4.69/modules/generators/cgi_common.h | 6
apache2-2.4.69/modules/generators/mod_cgid.c | 79
apache2-2.4.69/modules/http/http_filters.c | 2
apache2-2.4.69/modules/http/http_protocol.c | 9
apache2-2.4.69/modules/http/http_request.c | 8
apache2-2.4.69/modules/http2/h2_c1_io.c | 8
apache2-2.4.69/modules/http2/h2_c2.c | 4
apache2-2.4.69/modules/http2/h2_c2_filter.c | 6
apache2-2.4.69/modules/http2/h2_headers.c | 4
apache2-2.4.69/modules/http2/h2_mplx.c | 24
apache2-2.4.69/modules/http2/h2_mplx.h | 1
apache2-2.4.69/modules/http2/h2_protocol.c | 4
apache2-2.4.69/modules/http2/h2_proxy_session.c | 18
apache2-2.4.69/modules/http2/h2_proxy_util.c | 2
apache2-2.4.69/modules/http2/h2_session.c | 101
apache2-2.4.69/modules/http2/h2_session.h | 15
apache2-2.4.69/modules/http2/h2_stream.c | 26
apache2-2.4.69/modules/http2/h2_stream.h | 1
apache2-2.4.69/modules/http2/h2_ws.c | 4
apache2-2.4.69/modules/loggers/mod_logio.c | 2
apache2-2.4.69/modules/lua/lua_request.c | 8
apache2-2.4.69/modules/mappers/mod_dir.c | 4
apache2-2.4.69/modules/mappers/mod_rewrite.c | 10
apache2-2.4.69/modules/mappers/mod_speling.c | 2
apache2-2.4.69/modules/mappers/mod_userdir.c | 9
apache2-2.4.69/modules/mappers/mod_vhost_alias.c | 38
apache2-2.4.69/modules/md/md_acme.c | 24
apache2-2.4.69/modules/md/md_crypt.c | 6
apache2-2.4.69/modules/md/md_curl.c | 8
apache2-2.4.69/modules/md/md_log.c | 2
apache2-2.4.69/modules/md/md_ocsp.c | 16
apache2-2.4.69/modules/md/md_store.c | 2
apache2-2.4.69/modules/md/mod_md_config.c | 2
apache2-2.4.69/modules/metadata/mod_cern_meta.c | 12
apache2-2.4.69/modules/proxy/ajp_header.c | 2
apache2-2.4.69/modules/proxy/balancers/mod_lbmethod_heartbeat.c | 62
apache2-2.4.69/modules/proxy/mod_proxy_ajp.c | 2
apache2-2.4.69/modules/proxy/mod_proxy_ftp.c | 30
apache2-2.4.69/modules/proxy/mod_proxy_hcheck.c | 23
apache2-2.4.69/modules/proxy/mod_proxy_http.c | 6
apache2-2.4.69/modules/proxy/mod_proxy_uwsgi.c | 34
apache2-2.4.69/modules/session/mod_session_cookie.c | 9
apache2-2.4.69/modules/ssl/mod_ssl.c | 4
apache2-2.4.69/modules/ssl/ssl_engine_config.c | 3
apache2-2.4.69/modules/ssl/ssl_engine_kernel.c | 2
apache2-2.4.69/modules/ssl/ssl_engine_ocsp.c | 2
apache2-2.4.69/modules/ssl/ssl_engine_vars.c | 2
apache2-2.4.69/modules/ssl/ssl_private.h | 5
apache2-2.4.69/modules/ssl/ssl_util.c | 6
apache2-2.4.69/server/mpm_unix.c | 28
apache2-2.4.69/server/protocol.c | 6
apache2-2.4.69/server/request.c | 18
apache2-2.4.69/server/util_cookies.c | 6
apache2-2.4.69/server/util_expr_eval.c | 4
apache2-2.4.69/test/Makefile.in | 3
apache2-2.4.69/test/README | 97
apache2-2.4.69/test/README.pytest | 16
apache2-2.4.69/test/clients/Makefile.in | 6
apache2-2.4.69/test/conftest.py | 16
apache2-2.4.69/test/make_sni.sh | 2
apache2-2.4.69/test/modules/dav/conftest.py | 36
apache2-2.4.69/test/modules/dav/env.py | 25
apache2-2.4.69/test/modules/dav/test_001_propdb_ns_limit.py | 72
apache2-2.4.69/test/modules/http1/mod_h1test/mod_h1test.c | 2
apache2-2.4.69/test/modules/http2/mod_h2test/mod_h2test.c | 8
apache2-2.4.69/test/modules/http2/test_106_shutdown.py | 11
apache2-2.4.69/test/modules/http2/test_203_rfc9113.py | 12
apache2-2.4.69/test/modules/proxy/env.py | 67
apache2-2.4.69/test/modules/proxy/test_03_response.py | 124
apache2-2.4.69/test/modules/proxy/test_03_uwsgi.py | 175 +
apache2-2.4.69/test/modules/proxy/test_06_interim_resp.py | 184 +
apache2-2.4.69/test/modules/proxy/uwsgi_faker.py | 292 +
apache2-2.4.69/test/pyhttpd/conf.py | 7
apache2-2.4.69/test/pyhttpd/env.py | 43
apache2-2.4.69/test/pyhttpd/log.py | 10
apache2-2.4.69/test/pyhttpd/pyproject.toml | 16
apache2-2.4.69/test/pyhttpd/runtests.sh | 87
apache2-2.4.69/test/pyhttpd/uv.lock | 679 ++++
apache2-2.4.69/test/pytest_suite/.gitignore | 72
apache2-2.4.69/test/pytest_suite/README.md | 335 ++
apache2-2.4.69/test/pytest_suite/apache_pytest/__init__.py | 37
apache2-2.4.69/test/pytest_suite/apache_pytest/client.py | 358 ++
apache2-2.4.69/test/pytest_suite/apache_pytest/cmodules.py | 258 +
apache2-2.4.69/test/pytest_suite/apache_pytest/config.py | 911 +++++
apache2-2.4.69/test/pytest_suite/apache_pytest/fpm.py | 115
apache2-2.4.69/test/pytest_suite/apache_pytest/probe.py | 249 +
apache2-2.4.69/test/pytest_suite/apache_pytest/rawsocket.py | 125
apache2-2.4.69/test/pytest_suite/apache_pytest/scripts.py | 63
apache2-2.4.69/test/pytest_suite/apache_pytest/server.py | 241 +
apache2-2.4.69/test/pytest_suite/apache_pytest/sslca.py | 262 +
apache2-2.4.69/test/pytest_suite/apache_pytest/testapi.py | 95
apache2-2.4.69/test/pytest_suite/c-modules/authany/mod_authany.c | 172 +
apache2-2.4.69/test/pytest_suite/c-modules/client_add_filter/mod_client_add_filter.c | 54
apache2-2.4.69/test/pytest_suite/c-modules/eat_post/mod_eat_post.c | 61
apache2-2.4.69/test/pytest_suite/c-modules/echo_post/mod_echo_post.c | 102
apache2-2.4.69/test/pytest_suite/c-modules/echo_post_chunk/mod_echo_post_chunk.c | 93
apache2-2.4.69/test/pytest_suite/c-modules/fold/mod_fold.c | 33
apache2-2.4.69/test/pytest_suite/c-modules/httpd_test_util.c | 44
apache2-2.4.69/test/pytest_suite/c-modules/input_body_filter/mod_input_body_filter.c | 184 +
apache2-2.4.69/test/pytest_suite/c-modules/list_modules/mod_list_modules.c | 38
apache2-2.4.69/test/pytest_suite/c-modules/memory_track/mod_memory_track.c | 45
apache2-2.4.69/test/pytest_suite/c-modules/nntp_like/mod_nntp_like.c | 181 +
apache2-2.4.69/test/pytest_suite/c-modules/random_chunk/mod_random_chunk.c | 182 +
apache2-2.4.69/test/pytest_suite/c-modules/test_apr_uri/mod_test_apr_uri.c | 354 ++
apache2-2.4.69/test/pytest_suite/c-modules/test_pass_brigade/mod_test_pass_brigade.c | 102
apache2-2.4.69/test/pytest_suite/c-modules/test_rwrite/mod_test_rwrite.c | 66
apache2-2.4.69/test/pytest_suite/c-modules/test_session/mod_test_session.c | 348 ++
apache2-2.4.69/test/pytest_suite/c-modules/test_ssl/mod_test_ssl.c | 171 +
apache2-2.4.69/test/pytest_suite/c-modules/test_utilities/mod_test_utilities.c | 48
apache2-2.4.69/test/pytest_suite/conftest.py | 336 ++
apache2-2.4.69/test/pytest_suite/gen_test_header.py | 33
apache2-2.4.69/test/pytest_suite/pyproject.toml | 29
apache2-2.4.69/test/pytest_suite/runtests.bat | 164 +
apache2-2.4.69/test/pytest_suite/runtests.sh | 104
apache2-2.4.69/test/pytest_suite/t/conf/cache.conf.in | 25
apache2-2.4.69/test/pytest_suite/t/conf/core.conf.in | 55
apache2-2.4.69/test/pytest_suite/t/conf/extra.conf.in | 1595 ++++++++++
apache2-2.4.69/test/pytest_suite/t/conf/include-ssi-exec.conf.in | 499 +++
apache2-2.4.69/test/pytest_suite/t/conf/include.conf.in | 82
apache2-2.4.69/test/pytest_suite/t/conf/proxy.conf.in | 375 ++
apache2-2.4.69/test/pytest_suite/t/conf/proxy_beacon.conf.in | 115
apache2-2.4.69/test/pytest_suite/t/conf/ssl/README | 17
apache2-2.4.69/test/pytest_suite/t/conf/ssl/ca-bundle-duplicates.crt | 114
apache2-2.4.69/test/pytest_suite/t/conf/ssl/ca-bundle-sample.crt | 393 ++
apache2-2.4.69/test/pytest_suite/t/conf/ssl/httpd-passphrase.pl.PL | 2
apache2-2.4.69/test/pytest_suite/t/conf/ssl/proxyssl.conf.in | 125
apache2-2.4.69/test/pytest_suite/t/conf/ssl/ssl.conf.in | 301 +
apache2-2.4.69/test/pytest_suite/t/conf/vhost_alias.conf.in | 9
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/acceptpathinfo/index.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/acceptpathinfo/info.php | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/acceptpathinfo/off/index.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/acceptpathinfo/off/info.php | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/acceptpathinfo/off/test.sh | 8
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/acceptpathinfo/on/index.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/acceptpathinfo/on/info.php | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/acceptpathinfo/on/test.sh | 8
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/acceptpathinfo/test.sh | 8
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/cfg_getline/index.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/chunked/flush.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/chunked/flushheap0.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/all/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/all/i/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/all/i/test.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/all/inherit/test.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/all/is/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/all/is/test.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/all/m/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/all/m/test.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/all/mi/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/all/mi/test.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/all/minus-i/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/all/minus-i/test.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/all/minus-is/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/all/minus-is/test.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/all/minus-m/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/all/minus-m/test.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/all/minus-mi/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/all/minus-mi/test.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/all/minus-mis/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/all/minus-mis/test.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/all/minus-ms/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/all/minus-ms/test.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/all/minus-s/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/all/minus-s/test.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/all/mis/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/all/mis/test.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/all/ms/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/all/ms/test.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/all/s/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/all/s/test.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/all/test.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/default/test.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/i/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/i/test.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/is/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/is/test.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/m/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/m/minus-i/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/m/minus-i/test.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/m/minus-is/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/m/minus-is/test.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/m/minus-m/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/m/minus-m/test.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/m/minus-mi/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/m/minus-mi/test.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/m/minus-mis/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/m/minus-mis/test.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/m/minus-ms/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/m/minus-ms/test.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/m/minus-s/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/m/minus-s/test.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/m/plus-i/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/m/plus-i/test.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/m/plus-is/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/m/plus-is/test.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/m/plus-m/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/m/plus-m/test.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/m/plus-mi/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/m/plus-mi/test.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/m/plus-mis/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/m/plus-mis/test.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/m/plus-ms/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/m/plus-ms/test.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/m/plus-s/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/m/plus-s/test.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/m/test.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/mi/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/mi/test.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/mis/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/mis/test.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/ms/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/ms/test.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/none/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/none/i/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/none/i/test.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/none/inherit/test.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/none/is/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/none/is/test.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/none/m/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/none/m/test.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/none/mi/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/none/mi/test.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/none/mis/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/none/mis/test.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/none/ms/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/none/ms/test.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/none/plus-i/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/none/plus-i/test.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/none/plus-is/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/none/plus-is/test.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/none/plus-m/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/none/plus-m/test.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/none/plus-mi/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/none/plus-mi/test.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/none/plus-mis/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/none/plus-mis/minus-i/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/none/plus-mis/minus-i/test.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/none/plus-mis/minus-is/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/none/plus-mis/minus-is/test.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/none/plus-mis/minus-m/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/none/plus-mis/minus-m/test.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/none/plus-mis/minus-mi/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/none/plus-mis/minus-mi/test.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/none/plus-mis/minus-mis/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/none/plus-mis/minus-mis/test.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/none/plus-mis/minus-ms/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/none/plus-mis/minus-ms/test.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/none/plus-mis/minus-s/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/none/plus-mis/minus-s/test.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/none/plus-mis/test.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/none/plus-ms/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/none/plus-ms/test.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/none/plus-s/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/none/plus-s/test.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/none/s/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/none/s/test.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/none/test.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/s/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/s/test.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/etags/test.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/expr/index.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/htaccess/override/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/htaccess/override/hello.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/http_strict/send_hdr.pl.PL | 10
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/iffile/document | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/limits/index.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/loglevel/core_crit/info.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/loglevel/core_info/info.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/loglevel/crit/core_info/crit/info.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/apache/loglevel/info/core_crit/info/info.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/authz/login.html | 9
apache2-2.4.69/test/pytest_suite/t/htdocs/authz_core/a/b/c/index.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/authz_core/a/b/index.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/authz_core/a/index.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/echo_post.html | 11
apache2-2.4.69/test/pytest_suite/t/htdocs/expr/index.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/foobar.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/if_sec/dir/foo.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/if_sec/dir/index.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/if_sec/foo.if_test | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/if_sec/index.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/if_sec/loc/foo.if_test | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/if_sec/loc/foo.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/if_sec/loc/index.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/alias/0.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/alias/1.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/alias/2.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/alias/3.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/alias/4.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/alias/5.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/alias/6.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/alias/7.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/alias/8.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/alias/9.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/alias/index.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/allowmethods/Get/foo.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/allowmethods/Get/post/foo.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/allowmethods/Head/foo.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/allowmethods/Post/foo.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/asis/foo.asis | 4
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/asis/forbid.asis | 4
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/asis/notfound.asis | 4
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/cache/cache/index.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/cgi/acceptpathinfodefault.sh | 4
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/cgi/acceptpathinfooff.sh | 4
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/cgi/acceptpathinfoon.sh | 4
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/cgi/action.pl.PL | 10
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/cgi/action.sh | 9
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/cgi/big.pl.PL | 22
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/cgi/bogus-perl.pl.PL | 2
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/cgi/bogus-sh.sh | 2
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/cgi/bogus-te.sh | 10
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/cgi/bogus1k.pl.PL | 2
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/cgi/empty.pl.PL | 6
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/cgi/env.pl.PL | 7
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/cgi/not-modified.pl.PL | 4
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/cgi/nph-102.pl.PL | 9
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/cgi/nph-dripfeed.pl.PL | 17
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/cgi/nph-foldhdr.pl.PL | 13
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/cgi/nph-interim1.pl.PL | 16
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/cgi/nph-interim2.pl.PL | 16
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/cgi/nph-stderr.pl.PL | 12
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/cgi/nph-test.pl.PL | 9
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/cgi/ocsp.pl.PL | 78
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/cgi/perl.pl.PL | 3
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/cgi/perl_echo.pl.PL | 14
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/cgi/perl_post.pl.PL | 23
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/cgi/pr37166.pl.PL | 8
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/cgi/ranged.pl.PL | 11
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/cgi/redirect.pl.PL | 5
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/cgi/sh.sh | 4
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/cgi/stderr1.pl.PL | 7
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/cgi/stderr2.pl.PL | 9
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/cgi/stderr3.pl.PL | 8
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/cgi/unique-id.pl.PL | 3
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/cgi/xother.pl.PL | 6
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/deflate/bucketeer/BB.txt | 3
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/deflate/bucketeer/BBF.txt | 3
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/deflate/bucketeer/BFB.txt | 3
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/deflate/bucketeer/F.txt | 3
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/deflate/bucketeer/FBP.txt | 3
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/deflate/bucketeer/FP.txt | 3
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/deflate/bucketeer/P.txt | 3
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/deflate/index.html | 2
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/deflate/ssi/default.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/deflate/ssi/ssi.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/deflate/ssi/ssi2.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/dir/fallback/fallback.magictype | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/dir/fallback/index.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/dir/htaccess/0.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/dir/htaccess/1.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/dir/htaccess/2.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/dir/htaccess/3.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/dir/htaccess/4.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/dir/htaccess/5.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/dir/htaccess/6.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/dir/htaccess/7.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/dir/htaccess/8.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/dir/htaccess/9.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/dir/htaccess/index.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/dir/htaccess/sub1/index.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/env/host.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/env/nothere.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/env/set.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/env/setempty.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/env/type.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/env/unset.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/expires/expire.html | 4
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/expires/htaccess/expire.html | 4
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/expires/htaccess/index.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/expires/index.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/ext_filter/eval-cmd.pl.PL | 6
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/ext_filter/sleepycat.pl.PL | 3
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/filter/byterange/pr61860/test.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/filter/bytype/test.css | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/filter/bytype/test.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/filter/bytype/test.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/filter/bytype/test.xml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/filter/pr49328/included.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/filter/pr49328/pr49328.shtml | 3
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/headers/ssl/.htaccess | 3
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/headers/ssl/index.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/abs-path.shtml | 2
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/apexpr/err.shtml | 3
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/apexpr/if1.shtml | 6
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/apexpr/lazyvar.shtml | 5
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/apexpr/restrict.shtml | 3
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/apexpr/var.shtml | 16
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/big.shtml | 18
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/bucketeer/retagged3.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/bucketeer/retagged4.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/bucketeer/y.shtml | 16
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/bucketeer/y0.shtml | 16
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/bucketeer/y1.shtml | 16
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/bucketeer/y10.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/bucketeer/y2.shtml | 17
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/bucketeer/y3.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/bucketeer/y4.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/bucketeer/y5.shtml | 9
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/bucketeer/y6.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/bucketeer/y7.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/bucketeer/y8.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/bucketeer/y9.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/comment.shtml | 5
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/echo.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/echo1.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/echo2.shtml | 9
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/echo3.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/encode.shtml | 3
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/errmsg1.shtml | 2
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/errmsg2.shtml | 2
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/errmsg3.shtml | 2
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/errmsg4.shtml | 5
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/errmsg5.shtml | 2
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/exec/off/cgi.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/exec/off/cmd.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/exec/on/cgi.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/exec/on/cmd.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/extra/inc-bogus.shtml | 2
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/extra/inc-extra1.shtml | 2
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/extra/inc-extra2.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/file.shtml | 6
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/foo.shtml | 2
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/foo1.shtml | 2
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/foo2.shtml | 2
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/footer.shtml | 2
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/header.shtml | 7
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/if1.shtml | 6
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/if10.shtml | 10
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/if10a.shtml | 10
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/if11.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/if2.shtml | 10
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/if3.shtml | 21
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/if4.shtml | 15
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/if5.shtml | 21
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/if6.shtml | 3
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/if7.shtml | 3
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/if8.shtml | 9
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/if8a.shtml | 9
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/if9.shtml | 11
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/if9a.shtml | 11
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/inc-nego.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/inc-one.shtml | 2
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/inc-rfile.shtml | 2
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/inc-rvirtual.shtml | 2
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/inc-three.shtml | 2
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/inc-two.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/include1.shtml | 2
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/include2.shtml | 2
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/include3.shtml | 2
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/include4.shtml | 2
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/include5.shtml | 2
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/include6.shtml | 2
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/malformed.shtml | 6
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/mod_request/echo.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/mod_request/post.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/newline.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/notreal.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/parse1.shtml | 2
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/parse2.shtml | 2
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/printenv.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ranged-virtual.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/regex.shtml | 5
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/retagged1.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/retagged2.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/set.shtml | 2
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/size.shtml | 17
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/1/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/1/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/10/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/10/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/100/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/100/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/101/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/101/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/102/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/102/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/103/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/103/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/104/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/104/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/105/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/105/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/106/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/106/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/107/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/107/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/108/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/108/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/109/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/109/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/11/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/11/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/110/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/110/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/111/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/111/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/112/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/112/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/113/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/113/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/114/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/114/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/115/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/115/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/116/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/116/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/117/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/117/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/118/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/118/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/119/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/119/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/12/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/12/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/120/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/120/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/121/subdir/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/13/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/13/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/14/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/14/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/15/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/15/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/16/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/16/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/17/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/17/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/18/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/18/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/19/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/19/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/2/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/2/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/20/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/20/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/21/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/21/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/22/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/22/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/23/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/23/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/24/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/24/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/25/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/25/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/26/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/26/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/27/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/27/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/28/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/28/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/29/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/29/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/3/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/3/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/30/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/30/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/31/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/31/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/32/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/32/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/33/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/33/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/34/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/34/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/35/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/35/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/36/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/36/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/37/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/37/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/38/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/38/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/39/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/39/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/4/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/4/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/40/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/40/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/41/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/41/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/42/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/42/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/43/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/43/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/44/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/44/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/45/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/45/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/46/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/46/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/47/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/47/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/48/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/48/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/49/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/49/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/5/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/5/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/50/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/50/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/51/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/51/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/52/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/52/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/53/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/53/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/54/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/54/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/55/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/55/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/56/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/56/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/57/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/57/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/58/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/58/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/59/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/59/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/6/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/6/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/60/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/60/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/61/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/61/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/62/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/62/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/63/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/63/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/64/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/64/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/65/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/65/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/66/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/66/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/67/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/67/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/68/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/68/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/69/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/69/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/7/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/7/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/70/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/70/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/71/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/71/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/72/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/72/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/73/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/73/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/74/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/74/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/75/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/75/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/76/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/76/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/77/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/77/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/78/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/78/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/79/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/79/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/8/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/8/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/80/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/80/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/81/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/81/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/82/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/82/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/83/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/83/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/84/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/84/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/85/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/85/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/86/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/86/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/87/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/87/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/88/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/88/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/89/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/89/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/9/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/9/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/90/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/90/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/91/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/91/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/92/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/92/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/93/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/93/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/94/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/94/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/95/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/95/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/96/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/96/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/97/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/97/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/98/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/98/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/99/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/ssi-exec/99/exec.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/var128.shtml | 4
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/virtual.shtml | 7
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/virtualq.shtml | 4
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/xbithack/both/timefmt.shtml | 2
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/xbithack/full/test.html | 3
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/xbithack/off/test.html | 3
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/include/xbithack/on/test.html | 3
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/lua/201.lua | 3
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/lua/filters.lua | 16
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/lua/hello.lua | 4
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/lua/hello2.lua | 4
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/lua/https.lua | 7
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/lua/method.lua | 3
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/lua/setheaderfromparam.lua | 10
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/lua/setheaders.lua | 4
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/lua/translate.lua | 28
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/lua/version.lua | 3
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/lua/websockets.lua | 18
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/content-type/test.var | 26
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/de/compressed/index.html.de | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/de/compressed/index.html.en | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/de/compressed/index.html.fr | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/de/compressed/index.html.fu | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/de/compressed/index.html.zh-TW | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/de/index.html.de | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/de/index.html.en | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/de/index.html.fr | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/de/index.html.fu | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/de/index.html.zh-TW | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/de/two/index.de.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/de/two/index.en.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/de/two/index.fr.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/de/two/index.fu.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/de/two/index.zh-TW.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/de/two/map.var | 21
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/en/compressed/index.html.de | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/en/compressed/index.html.en | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/en/compressed/index.html.fr | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/en/compressed/index.html.fu | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/en/compressed/index.html.zh-TW | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/en/index.html.de | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/en/index.html.en | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/en/index.html.fr | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/en/index.html.fu | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/en/index.html.zh-TW | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/en/two/index.de.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/en/two/index.en.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/en/two/index.fr.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/en/two/index.fu.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/en/two/index.zh-TW.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/en/two/map.var | 21
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/fr/compressed/index.html.de | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/fr/compressed/index.html.en | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/fr/compressed/index.html.fr | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/fr/compressed/index.html.fu | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/fr/compressed/index.html.zh-TW | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/fr/index.html.de | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/fr/index.html.en | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/fr/index.html.fr | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/fr/index.html.fu | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/fr/index.html.zh-TW | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/fr/two/index.de.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/fr/two/index.en.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/fr/two/index.fr.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/fr/two/index.fu.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/fr/two/index.zh-TW.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/fr/two/map.var | 21
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/fu/compressed/index.html.de | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/fu/compressed/index.html.en | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/fu/compressed/index.html.fr | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/fu/compressed/index.html.fu | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/fu/compressed/index.html.zh-TW | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/fu/index.html.de | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/fu/index.html.en | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/fu/index.html.fr | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/fu/index.html.fu | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/fu/index.html.zh-TW | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/fu/two/index.de.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/fu/two/index.en.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/fu/two/index.fr.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/fu/two/index.fu.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/fu/two/index.zh-TW.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/fu/two/map.var | 21
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/query/test.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/query/test.pl.PL | 8
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/query/test.var | 7
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/zh-TW/compressed/index.html.de | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/zh-TW/compressed/index.html.en | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/zh-TW/compressed/index.html.fr | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/zh-TW/compressed/index.html.fu | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/zh-TW/compressed/index.html.zh-TW | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/zh-TW/index.html.de | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/zh-TW/index.html.en | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/zh-TW/index.html.fr | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/zh-TW/index.html.fu | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/zh-TW/index.html.zh-TW | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/zh-TW/two/index.de.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/zh-TW/two/index.en.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/zh-TW/two/index.fr.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/zh-TW/two/index.fu.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/zh-TW/two/index.zh-TW.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/negotiation/zh-TW/two/map.var | 21
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/proxy/fcgi-action/index.php | 3
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/proxy/fcgi-generic-rewrite/index.php | 3
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/proxy/fcgi-generic/index.php | 3
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/proxy/fcgi-rewrite-path-info/index.php | 3
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/proxy/fcgi/index.php | 3
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/proxy/reverse/notproxy/local.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/proxy/rewrite/.htaccess | 2
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/proxy_html/case_insensitive.html | 11
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/proxy_html/comments.html | 16
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/proxy_html/doctype.html | 9
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/proxy_html/equiv.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/proxy_html/fixups_case.html | 10
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/proxy_html/fixups_dospath.html | 10
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/proxy_html/inline_script.html | 16
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/proxy_html/links_elements.html | 15
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/proxy_html/meta_contenttype.html | 11
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/proxy_html/meta_edge_cases.html | 11
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/proxy_html/meta_malformed.html | 14
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/proxy_html/meta_multiple.html | 14
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/proxy_html/meta_quotes.html | 12
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/proxy_html/meta_simple.html | 10
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/proxy_html/meta_special_chars.html | 12
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/proxy_html/meta_whitespace.html | 11
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/proxy_html/multi_subst.html | 20
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/proxy_html/multi_subst_rx.html | 20
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/proxy_html/multiple_maps.html | 11
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/proxy_html/regex_rewrite.html | 11
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/proxy_html/url_rewrite.html | 12
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/remoteip/index.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/rewrite/barfoo.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/rewrite/big.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/rewrite/db.pl.PL | 10
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/rewrite/five.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/rewrite/four.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/rewrite/lucky13.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/rewrite/numbers.pl.PL | 26
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/rewrite/numbers.rnd | 10
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/rewrite/numbers.txt | 10
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/rewrite/numbers2.pl.PL | 9
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/rewrite/one.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/rewrite/six.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/rewrite/test.blah | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/rewrite/three.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/rewrite/two.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/rewrite/vary1.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/rewrite/vary2.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/rewrite/vary3.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/rewrite/vary4.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/rewrite/zero.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/session/env.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/session_cookie/test | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/setenvif/htaccess/setenvif.shtml | 3
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/speling/caseonly/good.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/speling/caseonly/several1.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/speling/caseonly/several2.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/speling/nocase/good.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/speling/nocase/several1.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/speling/nocase/several2.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/usertrack/bar.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/usertrack/foo.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/xml2enc/doc.fooxml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/xml2enc/doc.isohtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/xml2enc/doc.notxml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/modules/xml2enc/doc.xml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/php/add.php | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/php/arg.php | 5
apache2-2.4.69/test/pytest_suite/t/htdocs/php/cfunctions.php | 55
apache2-2.4.69/test/pytest_suite/t/htdocs/php/classes.php | 46
apache2-2.4.69/test/pytest_suite/t/htdocs/php/dirname.php | 17
apache2-2.4.69/test/pytest_suite/t/htdocs/php/divide.php | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/php/do-while.php | 7
apache2-2.4.69/test/pytest_suite/t/htdocs/php/else.php | 7
apache2-2.4.69/test/pytest_suite/t/htdocs/php/elseif.php | 9
apache2-2.4.69/test/pytest_suite/t/htdocs/php/eval.php | 5
apache2-2.4.69/test/pytest_suite/t/htdocs/php/eval3.php | 10
apache2-2.4.69/test/pytest_suite/t/htdocs/php/eval4.php | 13
apache2-2.4.69/test/pytest_suite/t/htdocs/php/fpm/action/sub2/test.php | 4
apache2-2.4.69/test/pytest_suite/t/htdocs/php/fpm/pp/sub1/test.php | 4
apache2-2.4.69/test/pytest_suite/t/htdocs/php/fpm/test.php | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/php/func1.php | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/php/func5.php | 25
apache2-2.4.69/test/pytest_suite/t/htdocs/php/func6.php | 18
apache2-2.4.69/test/pytest_suite/t/htdocs/php/getenv.php | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/php/getlastmod.php | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/php/globals.php | 19
apache2-2.4.69/test/pytest_suite/t/htdocs/php/hello.php | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/php/if.php | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/php/include.inc | 3
apache2-2.4.69/test/pytest_suite/t/htdocs/php/include.php | 3
apache2-2.4.69/test/pytest_suite/t/htdocs/php/inheritance.php | 43
apache2-2.4.69/test/pytest_suite/t/htdocs/php/lookup.php | 5
apache2-2.4.69/test/pytest_suite/t/htdocs/php/lookup2.php | 8
apache2-2.4.69/test/pytest_suite/t/htdocs/php/multiply.php | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/php/multiviews/file.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/php/nestif.php | 15
apache2-2.4.69/test/pytest_suite/t/htdocs/php/ops.php | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/php/recurse.php | 10
apache2-2.4.69/test/pytest_suite/t/htdocs/php/regression.php | 22
apache2-2.4.69/test/pytest_suite/t/htdocs/php/regression1.inc | 356 ++
apache2-2.4.69/test/pytest_suite/t/htdocs/php/regression2.inc | 6
apache2-2.4.69/test/pytest_suite/t/htdocs/php/regression2.php | 369 ++
apache2-2.4.69/test/pytest_suite/t/htdocs/php/safemode/badenv.php | 2
apache2-2.4.69/test/pytest_suite/t/htdocs/php/safemode/error/mail.php | 9
apache2-2.4.69/test/pytest_suite/t/htdocs/php/safemode/hello.txt | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/php/safemode/noexec/system.php | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/php/safemode/nofile/readfile.php | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/php/safemode/protected.php | 2
apache2-2.4.69/test/pytest_suite/t/htdocs/php/safemode/putenv.php | 2
apache2-2.4.69/test/pytest_suite/t/htdocs/php/safemode/readfile.php | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/php/safemode/readpass.php | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/php/safemode/system.php | 2
apache2-2.4.69/test/pytest_suite/t/htdocs/php/status.php | 5
apache2-2.4.69/test/pytest_suite/t/htdocs/php/strings.php | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/php/strings2.php | 187 +
apache2-2.4.69/test/pytest_suite/t/htdocs/php/strings3.php | 37
apache2-2.4.69/test/pytest_suite/t/htdocs/php/strings4.php | 5
apache2-2.4.69/test/pytest_suite/t/htdocs/php/subtract.php | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/php/switch.php | 13
apache2-2.4.69/test/pytest_suite/t/htdocs/php/switch2.php | 42
apache2-2.4.69/test/pytest_suite/t/htdocs/php/switch3.php | 29
apache2-2.4.69/test/pytest_suite/t/htdocs/php/switch4.php | 29
apache2-2.4.69/test/pytest_suite/t/htdocs/php/target.php | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/php/test-fpm.php | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/php/umask.php | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/php/var1.php | 12
apache2-2.4.69/test/pytest_suite/t/htdocs/php/var2.php | 14
apache2-2.4.69/test/pytest_suite/t/htdocs/php/var3.php | 16
apache2-2.4.69/test/pytest_suite/t/htdocs/php/var3u.php | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/php/virtual.php | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/php/while.php | 5
apache2-2.4.69/test/pytest_suite/t/htdocs/security/CAN-2003-0542/.htaccess | 3
apache2-2.4.69/test/pytest_suite/t/htdocs/security/CAN-2004-0747/.htaccess | 2
apache2-2.4.69/test/pytest_suite/t/htdocs/security/CAN-2004-0747/index.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/security/CAN-2004-0811/.htaccess | 3
apache2-2.4.69/test/pytest_suite/t/htdocs/security/CAN-2004-0811/index.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/security/CAN-2004-0811/sub/index.html | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/security/CAN-2004-0940.shtml | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/security/CAN-2005-2491/one/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/security/CAN-2005-2491/two/.htaccess | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/security/CVE-2005-3352.map | 1
apache2-2.4.69/test/pytest_suite/t/htdocs/servlet/mapping.html | 1
apache2-2.4.69/test/pytest_suite/t/php-fpm/etc/php-fpm.conf | 19
apache2-2.4.69/test/pytest_suite/t/php-fpm/etc/php-fpm.d/www.conf | 7
apache2-2.4.69/test/pytest_suite/t/php-fpm/fcgi.pl | 25
apache2-2.4.69/test/pytest_suite/tests/t/ab/test_base.py | 62
apache2-2.4.69/test/pytest_suite/tests/t/apache/test_404.py | 22
apache2-2.4.69/test/pytest_suite/tests/t/apache/test_acceptpathinfo.py | 76
apache2-2.4.69/test/pytest_suite/tests/t/apache/test_byterange.py | 54
apache2-2.4.69/test/pytest_suite/tests/t/apache/test_byterange2.py | 16
apache2-2.4.69/test/pytest_suite/tests/t/apache/test_byterange3.py | 58
apache2-2.4.69/test/pytest_suite/tests/t/apache/test_byterange4.py | 54
apache2-2.4.69/test/pytest_suite/tests/t/apache/test_byterange5.py | 93
apache2-2.4.69/test/pytest_suite/tests/t/apache/test_byterange6.py | 142
apache2-2.4.69/test/pytest_suite/tests/t/apache/test_byterange7.py | 72
apache2-2.4.69/test/pytest_suite/tests/t/apache/test_byterange8.py | 36
apache2-2.4.69/test/pytest_suite/tests/t/apache/test_cfg_getline.py | 34
apache2-2.4.69/test/pytest_suite/tests/t/apache/test_chunkinput.py | 105
apache2-2.4.69/test/pytest_suite/tests/t/apache/test_contentlength.py | 75
apache2-2.4.69/test/pytest_suite/tests/t/apache/test_errordoc.py | 77
apache2-2.4.69/test/pytest_suite/tests/t/apache/test_etags.py | 98
apache2-2.4.69/test/pytest_suite/tests/t/apache/test_expr.py | 286 +
apache2-2.4.69/test/pytest_suite/tests/t/apache/test_expr_string.py | 125
apache2-2.4.69/test/pytest_suite/tests/t/apache/test_getfile.py | 35
apache2-2.4.69/test/pytest_suite/tests/t/apache/test_headers.py | 82
apache2-2.4.69/test/pytest_suite/tests/t/apache/test_hostcheck.py | 72
apache2-2.4.69/test/pytest_suite/tests/t/apache/test_http_strict.py | 229 +
apache2-2.4.69/test/pytest_suite/tests/t/apache/test_if_sections.py | 63
apache2-2.4.69/test/pytest_suite/tests/t/apache/test_iffile.py | 18
apache2-2.4.69/test/pytest_suite/tests/t/apache/test_leaks.py | 41
apache2-2.4.69/test/pytest_suite/tests/t/apache/test_limits.py | 93
apache2-2.4.69/test/pytest_suite/tests/t/apache/test_loglevel.py | 59
apache2-2.4.69/test/pytest_suite/tests/t/apache/test_maxranges.py | 72
apache2-2.4.69/test/pytest_suite/tests/t/apache/test_mergeslashes.py | 106
apache2-2.4.69/test/pytest_suite/tests/t/apache/test_mmn.py | 43
apache2-2.4.69/test/pytest_suite/tests/t/apache/test_options.py | 26
apache2-2.4.69/test/pytest_suite/tests/t/apache/test_passbrigade.py | 21
apache2-2.4.69/test/pytest_suite/tests/t/apache/test_post.py | 21
apache2-2.4.69/test/pytest_suite/tests/t/apache/test_pr17629.py | 35
apache2-2.4.69/test/pytest_suite/tests/t/apache/test_pr18757.py | 59
apache2-2.4.69/test/pytest_suite/tests/t/apache/test_pr35292.py | 44
apache2-2.4.69/test/pytest_suite/tests/t/apache/test_pr35330.py | 19
apache2-2.4.69/test/pytest_suite/tests/t/apache/test_pr37166.py | 25
apache2-2.4.69/test/pytest_suite/tests/t/apache/test_pr43939.py | 35
apache2-2.4.69/test/pytest_suite/tests/t/apache/test_pr49328.py | 23
apache2-2.4.69/test/pytest_suite/tests/t/apache/test_pr64339.py | 50
apache2-2.4.69/test/pytest_suite/tests/t/apache/test_rwrite.py | 24
apache2-2.4.69/test/pytest_suite/tests/t/apache/test_server_name_port.py | 117
apache2-2.4.69/test/pytest_suite/tests/t/apache/test_snihostcheck.py | 25
apache2-2.4.69/test/pytest_suite/tests/t/apache/test_teclchunk.py | 72
apache2-2.4.69/test/pytest_suite/tests/t/apr/test_uri.py | 18
apache2-2.4.69/test/pytest_suite/tests/t/filter/test_byterange.py | 27
apache2-2.4.69/test/pytest_suite/tests/t/filter/test_case.py | 53
apache2-2.4.69/test/pytest_suite/tests/t/filter/test_case_in.py | 50
apache2-2.4.69/test/pytest_suite/tests/t/filter/test_input_body.py | 27
apache2-2.4.69/test/pytest_suite/tests/t/http11/test_all.py | 12
apache2-2.4.69/test/pytest_suite/tests/t/http11/test_basicauth.py | 27
apache2-2.4.69/test/pytest_suite/tests/t/http11/test_chunked.py | 57
apache2-2.4.69/test/pytest_suite/tests/t/http11/test_chunked2.py | 19
apache2-2.4.69/test/pytest_suite/tests/t/http11/test_clength.py | 32
apache2-2.4.69/test/pytest_suite/tests/t/http11/test_post.py | 20
apache2-2.4.69/test/pytest_suite/tests/t/modules/conftest.py | 16
apache2-2.4.69/test/pytest_suite/tests/t/modules/data_expected.txt | 1
apache2-2.4.69/test/pytest_suite/tests/t/modules/test_aaa.py | 144
apache2-2.4.69/test/pytest_suite/tests/t/modules/test_access.py | 112
apache2-2.4.69/test/pytest_suite/tests/t/modules/test_actions.py | 64
apache2-2.4.69/test/pytest_suite/tests/t/modules/test_alias.py | 171 +
apache2-2.4.69/test/pytest_suite/tests/t/modules/test_allowmethods.py | 64
apache2-2.4.69/test/pytest_suite/tests/t/modules/test_asis.py | 28
apache2-2.4.69/test/pytest_suite/tests/t/modules/test_authz_core.py | 319 ++
apache2-2.4.69/test/pytest_suite/tests/t/modules/test_autoindex.py | 239 +
apache2-2.4.69/test/pytest_suite/tests/t/modules/test_autoindex2.py | 58
apache2-2.4.69/test/pytest_suite/tests/t/modules/test_brotli.py | 78
apache2-2.4.69/test/pytest_suite/tests/t/modules/test_buffer.py | 34
apache2-2.4.69/test/pytest_suite/tests/t/modules/test_cache.py | 31
apache2-2.4.69/test/pytest_suite/tests/t/modules/test_cgi.py | 140
apache2-2.4.69/test/pytest_suite/tests/t/modules/test_data.py | 28
apache2-2.4.69/test/pytest_suite/tests/t/modules/test_dav.py | 209 +
apache2-2.4.69/test/pytest_suite/tests/t/modules/test_deflate.py | 123
apache2-2.4.69/test/pytest_suite/tests/t/modules/test_digest.py | 114
apache2-2.4.69/test/pytest_suite/tests/t/modules/test_dir.py | 112
apache2-2.4.69/test/pytest_suite/tests/t/modules/test_directorymatch.py | 23
apache2-2.4.69/test/pytest_suite/tests/t/modules/test_env.py | 34
apache2-2.4.69/test/pytest_suite/tests/t/modules/test_expires.py | 231 +
apache2-2.4.69/test/pytest_suite/tests/t/modules/test_ext_filter.py | 61
apache2-2.4.69/test/pytest_suite/tests/t/modules/test_filter.py | 27
apache2-2.4.69/test/pytest_suite/tests/t/modules/test_headers.py | 234 +
apache2-2.4.69/test/pytest_suite/tests/t/modules/test_heartbeat.py | 44
apache2-2.4.69/test/pytest_suite/tests/t/modules/test_include.py | 331 ++
apache2-2.4.69/test/pytest_suite/tests/t/modules/test_info.py | 41
apache2-2.4.69/test/pytest_suite/tests/t/modules/test_ldap.py | 48
apache2-2.4.69/test/pytest_suite/tests/t/modules/test_lua.py | 70
apache2-2.4.69/test/pytest_suite/tests/t/modules/test_negotiation.py | 155
apache2-2.4.69/test/pytest_suite/tests/t/modules/test_proxy.py | 257 +
apache2-2.4.69/test/pytest_suite/tests/t/modules/test_proxy_balancer.py | 90
apache2-2.4.69/test/pytest_suite/tests/t/modules/test_proxy_beacon.py | 141
apache2-2.4.69/test/pytest_suite/tests/t/modules/test_proxy_fcgi.py | 340 ++
apache2-2.4.69/test/pytest_suite/tests/t/modules/test_proxy_html.py | 237 +
apache2-2.4.69/test/pytest_suite/tests/t/modules/test_proxy_websockets.py | 30
apache2-2.4.69/test/pytest_suite/tests/t/modules/test_proxy_websockets_ssl.py | 26
apache2-2.4.69/test/pytest_suite/tests/t/modules/test_ratelimit.py | 31
apache2-2.4.69/test/pytest_suite/tests/t/modules/test_reflector.py | 55
apache2-2.4.69/test/pytest_suite/tests/t/modules/test_remoteip.py | 100
apache2-2.4.69/test/pytest_suite/tests/t/modules/test_rewrite.py | 316 +
apache2-2.4.69/test/pytest_suite/tests/t/modules/test_sed.py | 41
apache2-2.4.69/test/pytest_suite/tests/t/modules/test_session.py | 198 +
apache2-2.4.69/test/pytest_suite/tests/t/modules/test_session_cookie.py | 33
apache2-2.4.69/test/pytest_suite/tests/t/modules/test_setenvif.py | 171 +
apache2-2.4.69/test/pytest_suite/tests/t/modules/test_speling.py | 61
apache2-2.4.69/test/pytest_suite/tests/t/modules/test_status.py | 21
apache2-2.4.69/test/pytest_suite/tests/t/modules/test_substitute.py | 194 +
apache2-2.4.69/test/pytest_suite/tests/t/modules/test_unique_id.py | 25
apache2-2.4.69/test/pytest_suite/tests/t/modules/test_usertrack.py | 68
apache2-2.4.69/test/pytest_suite/tests/t/modules/test_vhost_alias.py | 103
apache2-2.4.69/test/pytest_suite/tests/t/php/test_add.py | 9
apache2-2.4.69/test/pytest_suite/tests/t/php/test_all.py | 12
apache2-2.4.69/test/pytest_suite/tests/t/php/test_arg.py | 21
apache2-2.4.69/test/pytest_suite/tests/t/php/test_cfunctions.py | 15
apache2-2.4.69/test/pytest_suite/tests/t/php/test_classes.py | 19
apache2-2.4.69/test/pytest_suite/tests/t/php/test_dirname.py | 25
apache2-2.4.69/test/pytest_suite/tests/t/php/test_divide.py | 9
apache2-2.4.69/test/pytest_suite/tests/t/php/test_do_while.py | 9
apache2-2.4.69/test/pytest_suite/tests/t/php/test_else.py | 9
apache2-2.4.69/test/pytest_suite/tests/t/php/test_elseif.py | 9
apache2-2.4.69/test/pytest_suite/tests/t/php/test_eval.py | 9
apache2-2.4.69/test/pytest_suite/tests/t/php/test_eval3.py | 11
apache2-2.4.69/test/pytest_suite/tests/t/php/test_eval4.py | 11
apache2-2.4.69/test/pytest_suite/tests/t/php/test_func1.py | 9
apache2-2.4.69/test/pytest_suite/tests/t/php/test_func5.py | 31
apache2-2.4.69/test/pytest_suite/tests/t/php/test_func6.py | 9
apache2-2.4.69/test/pytest_suite/tests/t/php/test_getenv.py | 12
apache2-2.4.69/test/pytest_suite/tests/t/php/test_getlastmod.py | 18
apache2-2.4.69/test/pytest_suite/tests/t/php/test_globals.py | 9
apache2-2.4.69/test/pytest_suite/tests/t/php/test_hello.py | 9
apache2-2.4.69/test/pytest_suite/tests/t/php/test_if.py | 9
apache2-2.4.69/test/pytest_suite/tests/t/php/test_ifmodsince.py | 27
apache2-2.4.69/test/pytest_suite/tests/t/php/test_include.py | 9
apache2-2.4.69/test/pytest_suite/tests/t/php/test_inheritance.py | 11
apache2-2.4.69/test/pytest_suite/tests/t/php/test_lookup.py | 19
apache2-2.4.69/test/pytest_suite/tests/t/php/test_multiply.py | 9
apache2-2.4.69/test/pytest_suite/tests/t/php/test_nestif.py | 9
apache2-2.4.69/test/pytest_suite/tests/t/php/test_ops.py | 9
apache2-2.4.69/test/pytest_suite/tests/t/php/test_pathinfo.py | 29
apache2-2.4.69/test/pytest_suite/tests/t/php/test_recurse.py | 9
apache2-2.4.69/test/pytest_suite/tests/t/php/test_regression.py | 15
apache2-2.4.69/test/pytest_suite/tests/t/php/test_regression2.py | 15
apache2-2.4.69/test/pytest_suite/tests/t/php/test_status.py | 19
apache2-2.4.69/test/pytest_suite/tests/t/php/test_strings.py | 20
apache2-2.4.69/test/pytest_suite/tests/t/php/test_strings2.py | 11
apache2-2.4.69/test/pytest_suite/tests/t/php/test_strings3.py | 29
apache2-2.4.69/test/pytest_suite/tests/t/php/test_strings4.py | 19
apache2-2.4.69/test/pytest_suite/tests/t/php/test_subtract.py | 9
apache2-2.4.69/test/pytest_suite/tests/t/php/test_switch.py | 9
apache2-2.4.69/test/pytest_suite/tests/t/php/test_switch2.py | 11
apache2-2.4.69/test/pytest_suite/tests/t/php/test_switch3.py | 11
apache2-2.4.69/test/pytest_suite/tests/t/php/test_switch4.py | 11
apache2-2.4.69/test/pytest_suite/tests/t/php/test_umask.py | 15
apache2-2.4.69/test/pytest_suite/tests/t/php/test_var1.py | 32
apache2-2.4.69/test/pytest_suite/tests/t/php/test_var2.py | 32
apache2-2.4.69/test/pytest_suite/tests/t/php/test_var3.py | 33
apache2-2.4.69/test/pytest_suite/tests/t/php/test_virtual.py | 23
apache2-2.4.69/test/pytest_suite/tests/t/php/test_while.py | 9
apache2-2.4.69/test/pytest_suite/tests/t/protocol/test_echo.py | 50
apache2-2.4.69/test/pytest_suite/tests/t/protocol/test_nntp_like.py | 71
apache2-2.4.69/test/pytest_suite/tests/t/security/test_CVE_2003_0542.py | 15
apache2-2.4.69/test/pytest_suite/tests/t/security/test_CVE_2004_0747.py | 28
apache2-2.4.69/test/pytest_suite/tests/t/security/test_CVE_2004_0811.py | 28
apache2-2.4.69/test/pytest_suite/tests/t/security/test_CVE_2004_0940.py | 13
apache2-2.4.69/test/pytest_suite/tests/t/security/test_CVE_2004_0942.py | 39
apache2-2.4.69/test/pytest_suite/tests/t/security/test_CVE_2005_2491.py | 24
apache2-2.4.69/test/pytest_suite/tests/t/security/test_CVE_2005_2700.py | 20
apache2-2.4.69/test/pytest_suite/tests/t/security/test_CVE_2005_3352.py | 32
apache2-2.4.69/test/pytest_suite/tests/t/security/test_CVE_2005_3357.py | 28
apache2-2.4.69/test/pytest_suite/tests/t/security/test_CVE_2006_5752.py | 20
apache2-2.4.69/test/pytest_suite/tests/t/security/test_CVE_2007_5000.py | 24
apache2-2.4.69/test/pytest_suite/tests/t/security/test_CVE_2007_6388.py | 17
apache2-2.4.69/test/pytest_suite/tests/t/security/test_CVE_2008_2364.py | 42
apache2-2.4.69/test/pytest_suite/tests/t/security/test_CVE_2009_1195.py | 161 +
apache2-2.4.69/test/pytest_suite/tests/t/security/test_CVE_2009_1890.py | 63
apache2-2.4.69/test/pytest_suite/tests/t/security/test_CVE_2009_3555.py | 41
apache2-2.4.69/test/pytest_suite/tests/t/security/test_CVE_2011_3368.py | 39
apache2-2.4.69/test/pytest_suite/tests/t/security/test_CVE_2011_3368_rewrite.py | 38
apache2-2.4.69/test/pytest_suite/tests/t/security/test_CVE_2017_7659.py | 40
apache2-2.4.69/test/pytest_suite/tests/t/security/test_CVE_2019_0215.py | 26
apache2-2.4.69/test/pytest_suite/tests/t/security/test_CVE_2020_1927.py | 49
apache2-2.4.69/test/pytest_suite/tests/t/ssl/conftest.py | 74
apache2-2.4.69/test/pytest_suite/tests/t/ssl/test_all.py | 13
apache2-2.4.69/test/pytest_suite/tests/t/ssl/test_basicauth.py | 43
apache2-2.4.69/test/pytest_suite/tests/t/ssl/test_env.py | 92
apache2-2.4.69/test/pytest_suite/tests/t/ssl/test_extlookup.py | 28
apache2-2.4.69/test/pytest_suite/tests/t/ssl/test_fakeauth.py | 34
apache2-2.4.69/test/pytest_suite/tests/t/ssl/test_headers.py | 40
apache2-2.4.69/test/pytest_suite/tests/t/ssl/test_http.py | 34
apache2-2.4.69/test/pytest_suite/tests/t/ssl/test_ocsp.py | 54
apache2-2.4.69/test/pytest_suite/tests/t/ssl/test_pha.py | 41
apache2-2.4.69/test/pytest_suite/tests/t/ssl/test_pr12355.py | 54
apache2-2.4.69/test/pytest_suite/tests/t/ssl/test_pr43738.py | 26
apache2-2.4.69/test/pytest_suite/tests/t/ssl/test_proxy.py | 91
apache2-2.4.69/test/pytest_suite/tests/t/ssl/test_require.py | 38
apache2-2.4.69/test/pytest_suite/tests/t/ssl/test_v2.py | 22
apache2-2.4.69/test/pytest_suite/tests/t/ssl/test_varlookup.py | 177 +
apache2-2.4.69/test/pytest_suite/tests/t/ssl/test_verify.py | 19
apache2-2.4.69/test/pytest_suite/tests/test_config_parity.py | 958 ++++++
apache2-2.4.69/test/pytest_suite/tests/test_framework_smoke.py | 59
apache2-2.4.69/test/pytest_suite/uv.lock | 156
apache2-2.4.69/test/run-all-tests.sh | 196 +
apache2-2.4.69/test/run-one-test.sh | 109
apache2-2.4.69/test/travis_before_linux.sh | 15
apache2-2.4.69/test/travis_run_linux.sh | 5
1330 files changed, 37468 insertions(+), 6014 deletions(-)
dpkg-source: warning: cannot verify inline signature for /srv/release.debian.org/tmp/tmpte_g3ic4/apache2_2.4.68-1~deb13u1.dsc: no acceptable signature found
dpkg-source: warning: cannot verify inline signature for /srv/release.debian.org/tmp/tmpte_g3ic4/apache2_2.4.69-1~deb13u1.dsc: no acceptable signature found
diff -Nru apache2-2.4.68/.github/workflows/linux.yml apache2-2.4.69/.github/workflows/linux.yml
--- apache2-2.4.68/.github/workflows/linux.yml 2026-06-04 08:50:44.000000000 +0000
+++ apache2-2.4.69/.github/workflows/linux.yml 2026-08-10 13:52:29.000000000 +0000
@@ -7,6 +7,8 @@
- 'docs/**'
- STATUS
- CHANGES
+ - README*
+ - '**.md'
- changes-entries/*
tags:
- 2.*
@@ -16,13 +18,19 @@
- 'docs/**'
- STATUS
- CHANGES
+ - README*
+ - '**.md'
- changes-entries/*
env:
MARGS: "-j2"
CFLAGS: "-g"
# This will need updating as the ubuntu-latest image changes:
- PHP_FPM: "/usr/sbin/php-fpm8.1"
+ PHP_FPM: "/usr/sbin/php-fpm8.3"
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
+ cancel-in-progress: ${{ github.event_name == 'pull_request' }}
jobs:
build:
@@ -80,18 +88,18 @@
TEST_INSTALL=1
SKIP_TESTING=1
# -------------------------------------------------------------------------
- - name: All-modules, APR 1.7.4, APR-util 1.6.3
+ - name: All-modules, APR 1.7.6, APR-util 1.6.5
config: --enable-mods-shared=reallyall
env: |
- APR_VERSION=1.7.4
- APU_VERSION=1.6.3
+ APR_VERSION=1.7.6
+ APU_VERSION=1.6.5
APU_CONFIG="--with-crypto --with-ldap"
# -------------------------------------------------------------------------
- - name: All-modules, APR 1.7.4, APR-util 1.6.3 (no APU crypto/LDAP)
+ - name: APR 1.7.6, APR-util 1.6.5 (no APU crypto/LDAP)
config: --enable-mods-shared=reallyall
env: |
- APR_VERSION=1.7.4
- APU_VERSION=1.6.3
+ APR_VERSION=1.7.6
+ APU_VERSION=1.6.5
APU_CONFIG="--without-crypto --without-ldap"
# -------------------------------------------------------------------------
- name: APR 1.8.x, APR-util 1.7.x
@@ -161,11 +169,11 @@
TESTS="t/modules/dav.t"
pkgs: litmus
# -------------------------------------------------------------------------
- - name: APR 1.7.4, APR-util 1.6.3, LDAP
+ - name: APR 1.7.6, APR-util 1.6.3, LDAP
config: --enable-mods-shared=reallyall
pkgs: ldap-utils
env: |
- APR_VERSION=1.7.4
+ APR_VERSION=1.7.6
APU_VERSION=1.6.3
APU_CONFIG="--with-crypto --with-ldap"
TEST_MALLOC=1
@@ -218,8 +226,8 @@
config: --enable-mods-shared=reallyall --with-mpm=event --enable-mpms-shared=all
pkgs: curl python3-pytest nghttp2-client python3-cryptography python3-requests python3-multipart python3-filelock python3-websockets
env: |
- APR_VERSION=1.7.4
- APU_VERSION=1.6.3
+ APR_VERSION=1.7.6
+ APU_VERSION=1.6.5
APU_CONFIG="--with-crypto"
NO_TEST_FRAMEWORK=1
TEST_INSTALL=1
@@ -235,7 +243,7 @@
# python3-pytest nghttp2-client python3-cryptography python3-requests python3-filelock
# golang-1.17 curl
# env: |
- # APR_VERSION=1.7.4
+ # APR_VERSION=1.7.6
# APU_VERSION=1.6.3
# APU_CONFIG="--with-crypto"
# GOROOT=/usr/lib/go-1.17
@@ -258,15 +266,15 @@
# NOTEST_CFLAGS="-Werror"
# CC="gcc -m32"
# APR_VERSION=1.7.3
- # APU_VERSION=1.6.3
+ # APU_VERSION=1.6.5
# APU_CONFIG="--with-crypto --with-ldap"
# -------------------------------------------------------------------------
- name: OpenSSL 3.0 LTS
config: --enable-mods-shared=most --enable-maintainer-mode --disable-md --disable-http2 --disable-ldap --disable-crypto
env: |
- TEST_OPENSSL3=3.0.18
+ TEST_OPENSSL3=3.0.21
APR_VERSION=1.7.6
- APU_VERSION=1.6.3
+ APU_VERSION=1.6.5
APU_CONFIG="--without-crypto"
pkgs: subversion
# -------------------------------------------------------------------------
@@ -274,19 +282,19 @@
config: --enable-mods-shared=most --enable-maintainer-mode --disable-md --disable-http2 --disable-ldap --disable-crypto
notest-cflags: -Werror -O2
env: |
- TEST_OPENSSL3=3.4.4
+ TEST_OPENSSL3=3.4.6
APR_VERSION=1.7.6
- APU_VERSION=1.6.3
+ APU_VERSION=1.6.5
APU_CONFIG="--without-crypto"
pkgs: subversion
# -------------------------------------------------------------------------
- name: OpenSSL 3.4 no-engine
config: --enable-mods-shared=most --enable-maintainer-mode --disable-md --disable-http2 --disable-ldap --disable-crypto
env: |
- TEST_OPENSSL3=3.4.4
+ TEST_OPENSSL3=3.4.6
OPENSSL_CONFIG=no-engine
APR_VERSION=1.7.6
- APU_VERSION=1.6.3
+ APU_VERSION=1.6.5
APU_CONFIG="--without-crypto"
pkgs: subversion
# -------------------------------------------------------------------------
@@ -294,10 +302,10 @@
config: --enable-mods-shared=most --enable-maintainer-mode --disable-md --disable-http2 --disable-ldap --disable-crypto
notest-cflags: -Werror -O2
env: |
- TEST_OPENSSL3=3.5.5
+ TEST_OPENSSL3=3.5.7
OPENSSL_CONFIG=no-engine
APR_VERSION=1.7.6
- APU_VERSION=1.6.3
+ APU_VERSION=1.6.5
APU_CONFIG="--without-crypto"
pkgs: subversion
# -------------------------------------------------------------------------
@@ -305,10 +313,10 @@
config: --enable-mods-shared=most --enable-maintainer-mode --disable-md --disable-http2 --disable-ldap --disable-crypto
notest-cflags: -Werror -O2
env: |
- TEST_OPENSSL3=4.0.0
+ TEST_OPENSSL3=4.0.1
OPENSSL_CONFIG=
APR_VERSION=1.7.6
- APU_VERSION=1.6.3
+ APU_VERSION=1.6.5
APU_CONFIG="--without-crypto"
pkgs: subversion
# -------------------------------------------------------------------------
@@ -336,6 +344,12 @@
libnghttp2-dev libjansson-dev libpcre2-dev gdb
perl-doc libsasl2-dev ${{ matrix.pkgs }}
- uses: actions/checkout@v4
+ - uses: actions/checkout@v6
+ with:
+ repository: apache/httpd-tests
+ path: test/perl-framework
+ submodules: true
+ if: ${{ ! ( env.SKIP_TESTING || env.NO_TEST_FRAMEWORK ) }}
- name: Cache installed libraries
uses: actions/cache@v4
with:
diff -Nru apache2-2.4.68/.github/workflows/windows.yml apache2-2.4.69/.github/workflows/windows.yml
--- apache2-2.4.68/.github/workflows/windows.yml 2026-06-03 16:47:03.000000000 +0000
+++ apache2-2.4.69/.github/workflows/windows.yml 2026-07-17 08:23:35.000000000 +0000
@@ -7,6 +7,8 @@
- 'docs/**'
- STATUS
- CHANGES
+ - README*
+ - '**.md'
- changes-entries/*
tags:
- 2.*
@@ -16,8 +18,14 @@
- 'docs/**'
- STATUS
- CHANGES
+ - README*
+ - '**.md'
- changes-entries/*
+concurrency:
+ group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
+ cancel-in-progress: ${{ github.event_name == 'pull_request' }}
+
jobs:
build:
strategy:
diff -Nru apache2-2.4.68/CHANGES apache2-2.4.69/CHANGES
--- apache2-2.4.68/CHANGES 2026-06-04 08:50:44.000000000 +0000
+++ apache2-2.4.69/CHANGES 2026-09-28 13:14:11.000000000 +0000
@@ -1,6 +1,170 @@
-*- coding: utf-8 -*-
+Changes with Apache 2.4.69
+
+ *) Fix the tar icon in the documentation so that its background is
+ transparent. PR 70238. [Jeffery To The CGI specification (RFC 3875) defines a number of environment
- variables that expand on those defined by the HTTP spec.
- These have been adopted more broadly, and are a standard
+ The CGI specification (RFC 3875) defines a
+ number of meta-variables, many of which derive their values from
+ HTTP request headers. Apache httpd makes these available as
+ environment variables to CGI scripts and other request-processing
+ mechanisms. These have been adopted more broadly, and are a standard
part of passing information between the browser and the
server, and between processes on the server side. Here we
discuss a few of these. For the complete list of request
diff -Nru apache2-2.4.68/docs/manual/env.html.fr.utf8 apache2-2.4.69/docs/manual/env.html.fr.utf8
--- apache2-2.4.68/docs/manual/env.html.fr.utf8 2026-05-31 13:57:20.000000000 +0000
+++ apache2-2.4.69/docs/manual/env.html.fr.utf8 2026-07-01 15:26:27.000000000 +0000
@@ -29,8 +29,6 @@
ko |
tr Deux types de variables d'environnement affectent le serveur
HTTP Apache. De nombreux exemples d’utilisation qui nécessitaient auparavant de
+ définir et tester des variables d’environnement — par exemple les en-têtes
+ conditionnels, le contrôle d’accès et la journalisation — peuvent
+ maintenant être traités de manière plus directe en utilisant les
+ expressions CGI environment variables ¶
-
+ Modules Apparentés Directives Apparentées Alternative moderne : les expressions
+ <If> avec la
+ fonction reqenv. Voir Les expressions
+ dans le serveur HTTP Apache pour la syntaxe des expressions et la
+ liste complète des variables disponibles.Scripts CGI
@@ -214,6 +224,10 @@
caractéristiques du client. Par exemple, vous pouvez utiliser ces
directives pour interdire l'accès depuis un navigateur particulier
(User-Agent).
+ Pour des conditions plus complexes, Require
+ expr fournit une alternative qui permet d’évaluer des
+ variables d’environnement en utilisant la fonction reqenv
+ en combinaison avec d’autres propriétés de requête.
La spécification sur les CGIs (RFC 3875) définit un - certain nombre de variables d'environnement qui s'ajoutent à celles définies - par la spécification de HTTP. Elles ont été plus largement adoptées et + certain nombre de méta-variables dont beaucoup sont affectées de leur valeur + à partir des en-têtes HTTP. Apache httpd les met à disposition en tant que + variables d’environnement pour les scripts CGI et d’autres mécanismes de + traitement des requêtes. Elles ont été plus largement adoptées et constituent une méthode standard pour transmettre des informations entre le navigateur et le serveur, et entre les processus au sein du serveur. Nous en - décrivons quelques unes ici ; consultez la spécification de CGI pour - plus de détails.
+ décrivons quelques unes ici. Pour une liste complète des variables de + requête disponibles dans les expressions (parmi + lesquellesREQUEST_URI, REMOTE_ADDR,
+ SERVER_NAME et de nombreuses autres), voir le document de
+ référence variables dans les expressions.
+
+ Consultez la spécification CGI pour plus de détails à propos des + métavariables CGI standard.
Disponible dans les versions postérieures à 2.0.54
-Quand Apache httpd génère une redirection en réponse à une requête client, la réponse inclut un texte destiné à être affiché au cas où le client ne suivrait pas, ou ne pourrait pas suivre automatiquement la redirection. diff -Nru apache2-2.4.68/docs/manual/glossary.html.fr.utf8 apache2-2.4.69/docs/manual/glossary.html.fr.utf8 --- apache2-2.4.68/docs/manual/glossary.html.fr.utf8 2026-05-31 13:57:20.000000000 +0000 +++ apache2-2.4.69/docs/manual/glossary.html.fr.utf8 2026-06-08 12:25:13.000000000 +0000 @@ -31,8 +31,6 @@ ko | tr
-Ce glossaire définit la terminologie courante relative au serveur HTTP Apache en particulier, et aux serveurs web en général. Vous trouverez plus @@ -149,6 +147,14 @@ pour décrire les directives de httpd +
<Directory>, <DirectoryMatch>, <Files> ou <FilesMatch> dans les fichiers de configuration
+ principaux, ou dans un fichier .htaccess. Dans un contexte de
+ répertoire, les directives ne s’appliquent qu’au répertoire (ou à l’ensemble
+ de fichiers) auquel elles sont associées.apxs
+
If you wish to restrict access to portions of your site based on the
- host address of your visitors, this is most easily done using
+ host address of your visitors, use
mod_authz_host.
The usage of these directives is:
-Require host address -Require ip ip.address- +
Require host address +Require ip ip.address ++
In the first form, address is a fully qualified domain name (or a partial domain name); you may provide multiple @@ -84,12 +85,26 @@ partial IP address, a network/netmask pair, or a network/nnn CIDR specification. Either IPv4 or IPv6 addresses may be used.
+# Full IP address +Require ip 10.2.3.4 +# Partial IP address (matches any host in the 172.20.0.0/16 range) +Require ip 172.20 +# Network/netmask pair +Require ip 192.168.1.0/255.255.255.0 +# Network/CIDR specification +Require ip 192.168.1.0/24 +# IPv6 address +Require ip 2001:db8::a00:20ff:fea7:ccea +# IPv6 with CIDR +Require ip 2001:db8:1::/48+
See the mod_authz_host documentation for further examples of this syntax.
You can insert not to negate a particular requirement.
- Note, that since a not is a negation of a value, it cannot
+ Since a not is a negation of a value, it cannot
be used by itself to allow or deny a request, as not true
does not constitute false. Thus, to deny a visit using a negation,
the block must have one element that evaluates as true or false.
@@ -97,28 +112,28 @@
board, and you want to keep them out, you could do the
following:
<RequireAll> - Require all granted - Require not ip 10.252.46.165 +<RequireAll> +Require all granted +Require not ip 10.252.46.165 </RequireAll>- +Visitors coming from that address (
-10.252.46.165) - will not be able to see the content covered by this directive. If, - instead, you have a machine name, rather than an IP address, you + will not be able to see the content covered by this directive. If, + instead, you have a machine name, rather than an IP address, you can use that.Require not host host.example.com -- +Require not host host.example.com ++And, if you'd like to block access from an entire domain, - you can specify just part of an address or domain name:
+ you can specify part of an address or domain name: -Require not ip 192.168.205 -Require not host phishers.example.com moreidiots.example +Require not ip 192.168.205 +Require not host phishers.example.com badguys.example Require not host gov- +Use of the
@@ -133,17 +148,17 @@ based on user-agent (the browser type) you might do the following: -RequireAll,RequireAny, andRequireNonedirectives may be used to enforce more complex sets of requirements.<If "%{HTTP_USER_AGENT} == 'BadBot'"> - Require all denied +<If "%{HTTP_USER_AGENT} == 'BadBot'"> +Require all denied </If>- +Using the
-Requireexprsyntax, this could also be written as:Require expr %{HTTP_USER_AGENT} != 'BadBot'- +Require expr %{HTTP_USER_AGENT} != 'BadBot'+@@ -143,17 +157,18 @@ fonction du user-agent (le type de navigateur), vous pouvez spécifier ceci : -Warning:
Access control by
User-Agentis an unreliable technique, @@ -166,11 +181,11 @@For example, if you wish to block access to a resource between 8pm and 7am, you can do this using
-mod_rewrite.RewriteEngine On +RewriteEngine On RewriteCond "%{TIME_HOUR}" ">=20" [OR] RewriteCond "%{TIME_HOUR}" "<07" -RewriteRule "^/fridge" "-" [F]- +RewriteRule "^/fridge" "-" [F] +This will return a 403 Forbidden response for any request after 8pm or before 7am. This technique can be used for any criteria that you wish diff -Nru apache2-2.4.68/docs/manual/howto/access.html.fr.utf8 apache2-2.4.69/docs/manual/howto/access.html.fr.utf8 --- apache2-2.4.68/docs/manual/howto/access.html.fr.utf8 2026-06-05 12:03:44.000000000 +0000 +++ apache2-2.4.69/docs/manual/howto/access.html.fr.utf8 2026-07-01 15:26:27.000000000 +0000 @@ -46,7 +46,7 @@
Plusieurs modules peuvent intervenir dans le contrôle d'accès. Les plus importants sont
@@ -55,9 +55,8 @@mod_authz_coreet -mod_authz_host. Ce document illustre aussi comment +mod_authz_host. Ce document également aussi comment utilisermod_rewritepour le contrôle d'accès.Contrôle d'accès en fonction de l'hôte du client ¶
- Si vous souhaitez restreindre l'accès à certaines parties de votre - site web en fonction de l'addresse de l'hôte de vos visiteurs, le - plus simple pour y parvenir consiste à utiliser le module + Si vous souhaitez restreindre l'accès à certaines parties de votre site web + en fonction de l'adresse de l'hôte de vos visiteurs, utilisez le module
@@ -77,9 +76,10 @@mod_authz_host.Les directives Require s'utilisent comme suit :
-Require host address -Require ip ip.address- +Require host address +Require ip ip.address ++Dans la première forme, nom-hôte est un nom de domaine pleinement qualifié (fqdn), ou un nom de domaine partiel ; vous @@ -90,46 +90,60 @@ sous-réseau ou une spécification CIDR de la forme réseau/nnn. Il est possible de spécifier des adresses IPv4 ou IPv6.
++Exemples de formats d’adresse IP
# Adresse IP complète +Require ip 10.2.3.4 +# Adresse IP partielle (correspond à tout hôte dans la tranche 172.20.0.0/16) +Require ip 172.20 +# Paire réseau/masque +Require ip 192.168.1.0/255.255.255.0 +# Spécification réseau/CIDR +Require ip 192.168.1.0/24 +# Adresse IPv6 +Require ip 2001:db8::a00:20ff:fea7:ccea +# Adresse IPv6 avec CIDR +Require ip 2001:db8:1::/48+Voir la documentation de mod_authz_host pour d'autres exemples de cette syntaxe.
Vous pouvez insérer le mot-clé
-notpour inverser un - critère particulier. Notez que le motnotétant la - négation d'une valeur, il ne peut pas être utilisé pour autoriser + critère particulier. Le motnotréalise la + négation sur la valeur, et ne peut pas être utilisé seul pour autoriser ou interdire une requête, car non vrai ne - sera pas interpreté par httpd comme faux. Ainsi, pour interdire la + veut pas ici forcément dire faux. Ainsi, pour interdire la visite d'une page à l'aide d'une négation, le bloc doit contenir un - élément évalué à vrai ou faux. - Par exemple, si quelqu'un est en train d'inonder - votre forum de messages indésirables, vous pouvez ajouter cette ligne pour lui refuser + élément, qui sera évalué à l'une des valeurs vrai ou faux. + Par exemple, si quelqu'un est en train de + spamer votre forum, vous pouvez ajouter cette ligne pour lui refuser l'accès :<RequireAll> - Require all granted - Require not ip 10.252.46.165 +<RequireAll> +Require all granted +Require not ip 10.252.46.165 </RequireAll>- +Les visiteurs possédant cette adresse (
-10.252.46.165) ne pourront pas voir le - contenu concerné par cette directive. Si vous voulez interdire + contenu concerné par cette directive. Si vous voulez interdir l'accès à une machine en fonction de son nom, vous pouvez ajouter ceci :Require not host host.example.com -- +Require not host host.example.com ++Et si vous voulez interdire l'accès à un domaine particulier, vous pouvez spécifier des adresses IP partielles ou des noms de domaine, comme ceci :
-Require not ip 192.168.205 -Require not host phishers.example.com moreidiots.example +- -Require not ip 192.168.205 +Require not host phishers.example.com badguys.example Require not host gov+Les directives
RequireAll,RequireAny, etRequireNonepermettent également de préciser des +Les directives
RequireAll,RequireAny, etRequireNoneouvrent le champ à des critères d'accès plus complexes.<If "%{HTTP_USER_AGENT} == 'BadBot'"> - Require all denied +- -<If "%{HTTP_USER_AGENT} == 'BadBot'"> +Require all denied </If>+La syntaxe
+exprde la directiveRequirepermet de réécrire - l'exemple précédent de la manière suivante :En utilisant la syntaxe
-exprde la directive +Require, l'exemple + précédent peut aussi s'écrire :Require expr %{HTTP_USER_AGENT} != 'BadBot'- +Require expr %{HTTP_USER_AGENT} != 'BadBot'+Avertissement :
Contrôler l'accès en fonction de l'en-tête @@ -177,18 +192,18 @@
Par exemple, pour bloquer l'accès à une ressources entre 20h et 7h du matin, vous pouvez utiliser
-mod_rewrite:RewriteEngine On +RewriteEngine On RewriteCond "%{TIME_HOUR}" ">=20" [OR] RewriteCond "%{TIME_HOUR}" "<07" -RewriteRule "^/fridge" "-" [F]- +RewriteRule "^/fridge" "-" [F] +Toute requête arrivant après 20h ou avant 7h du matin provoquera l'envoi d'une réponse de type 403 Forbidden. Vous pouvez utiliser cette technique pour vérifier toutes sortes de critères. En outre, si vous le préférez, vous pouvez rediriger ou réécrire la requête.
-Notez que la directive
<If>, introduite à partir de la version 2.4, +Notez que la directive
-<If>, ajoutée à partir de la version 2.4, permet de remplacer le modulemod_rewritedans de nombreuses situations où il était traditionnellement utilisé, et il sera probablement préférable pour vous de tenter de l'utiliser diff -Nru apache2-2.4.68/docs/manual/howto/auth.html.en apache2-2.4.69/docs/manual/howto/auth.html.en --- apache2-2.4.68/docs/manual/howto/auth.html.en 2026-05-31 13:57:20.000000000 +0000 +++ apache2-2.4.69/docs/manual/howto/auth.html.en 2026-06-19 14:27:29.000000000 +0000 @@ -145,8 +145,8 @@ anAllowOverridedirective like the following:AllowOverride AuthConfig- +AllowOverride AuthConfig+Or, if you are just going to put the directives directly in your main server configuration file, you will of course need to @@ -218,13 +218,13 @@ placed in
-httpd.confinside a <Directory "/usr/local/apache/htdocs/secret"> section.AuthType Basic +AuthType Basic AuthName "Restricted Files" # (Following line optional) AuthBasicProvider file AuthUserFile "/usr/local/apache/passwd/passwords" Require user rbowen- +Let's examine each of those directives individually. The
-AuthTypedirective selects the method that is used to authenticate the user. The most @@ -310,18 +310,17 @@ (It's the-cthat makes it create a new password file).Now, you need to modify your
+.htaccessfile or -<Directory>block - to look like the following:Now, you need to modify your
-.htaccessfile to + look like the following:AuthType Basic +AuthType Basic AuthName "By Invitation Only" # Optional line: AuthBasicProvider file AuthUserFile "/usr/local/apache/passwd/passwords" AuthGroupFile "/usr/local/apache/passwd/groups" Require group GroupName- +Now, anyone that is listed in the group
-GroupName, and has an entry in thepasswordfile, will be let in, if @@ -331,12 +330,18 @@ specific. Rather than creating a group file, you can just use the following directive:Require valid-user- +Require valid-user+Using that rather than the
+ and who correctly enters their password. You can even emulate + the group behavior here, by just keeping a separate password + file for each group. The advantage of this approach is that + Apache only has to check one file, rather than two. The + disadvantage is that you have to maintain a bunch of password + files, and remember to reference the right one in the +Require user rbowenline will allow anyone in that is listed in the password file, - and who correctly enters their password.AuthUserFiledirective.diff -Nru apache2-2.4.68/docs/manual/howto/auth.html.fr.utf8 apache2-2.4.69/docs/manual/howto/auth.html.fr.utf8 --- apache2-2.4.68/docs/manual/howto/auth.html.fr.utf8 2026-06-05 12:03:44.000000000 +0000 +++ apache2-2.4.69/docs/manual/howto/auth.html.fr.utf8 2026-07-01 15:26:27.000000000 +0000 @@ -147,11 +147,11 @@ d'une directivePossible problems ¶
@@ -372,14 +377,14 @@To select a dbm file rather than a text file, for example:
-<Directory "/www/docs/private"> - AuthName "Private" - AuthType Basic - AuthBasicProvider dbm - AuthDBMUserFile "/www/passwords/passwd.dbm" - Require valid-user +<Directory "/www/docs/private"> +AuthName "Private" +AuthType Basic +AuthBasicProvider dbm +AuthDBMUserFile "/www/passwords/passwd.dbm" +Require valid-user </Directory>- +Other options are available. Consult the
@@ -394,15 +399,15 @@ scheme that meets your needs. In the following example, both the file and LDAP based authentication providers are being used. -mod_authn_dbmdocumentation for more details.<Directory "/www/docs/private"> - AuthName "Private" - AuthType Basic - AuthBasicProvider file ldap - AuthUserFile "/usr/local/apache/passwd/passwords" - AuthLDAPURL ldap://ldaphost/o=yourorg - Require valid-user +<Directory "/www/docs/private"> +AuthName "Private" +AuthType Basic +AuthBasicProvider file ldap +AuthUserFile "/usr/local/apache/passwd/passwords" +AuthLDAPURL ldap://ldaphost/o=yourorg +Require valid-user </Directory>- +In this example the file provider will attempt to authenticate the user first. If it is unable to authenticate the user, the LDAP @@ -417,17 +422,17 @@ authorization methods can also be used. In this example both file group authorization as well as LDAP group authorization is being used.
-<Directory "/www/docs/private"> - AuthName "Private" - AuthType Basic - AuthBasicProvider file - AuthUserFile "/usr/local/apache/passwd/passwords" - AuthLDAPURL ldap://ldaphost/o=yourorg - AuthGroupFile "/usr/local/apache/passwd/groups" - Require group GroupName - Require ldap-group cn=mygroup,o=yourorg +<Directory "/www/docs/private"> +AuthName "Private" +AuthType Basic +AuthBasicProvider file +AuthUserFile "/usr/local/apache/passwd/passwords" +AuthLDAPURL ldap://ldaphost/o=yourorg +AuthGroupFile "/usr/local/apache/passwd/groups" +Require group GroupName +Require ldap-group cn=mygroup,o=yourorg </Directory>- +To take authorization a little further, authorization container directives such as @@ -490,73 +495,15 @@
Using authorization providers for access control
Authentication by username and password is only part of the - story. Frequently you want to let people in based on something - other than who they are. Something such as where they are - coming from.
- -The authorization providers
- -all, -env,hostandiplet you - allow or deny access based on other host based criteria such as - host name or ip address of the machine requesting a - document.The usage of these providers is specified through the -
- -Requiredirective. - This directive registers the authorization providers - that will be called during the authorization stage of the request - processing. For example:Require ip address -- - -where address is an IP address (or a partial IP - address) or:
- -Require host domain_name -- - -where domain_name is a fully qualified domain name - (or a partial domain name); you may provide multiple addresses or - domain names, if desired.
- -For example, if you have someone spamming your message - board, and you want to keep them out, you could do the - following:
- -<RequireAll> - Require all granted - Require not ip 10.252.46.165 -</RequireAll>- - -Visitors coming from that address will not be able to see - the content covered by this directive. If, instead, you have a - machine name, rather than an IP address, you can use that.
- -<RequireAll> - Require all granted - Require not host host.example.com -</RequireAll>- - -And, if you'd like to block access from an entire domain, - you can specify just part of an address or domain name:
- -<RequireAll> - Require all granted - Require not ip 192.168.205 - Require not host phishers.example.com moreidiots.example - Require not host ke -</RequireAll>- - -Using
+ story. You can also allow or deny access based on other + criteria, such as the client's IP address or hostname, using + the authorization providers<RequireAll>- with multiple<Require>directives, each negated withnot, - will only allow access, if all of negated conditions are true. In other words, - access will be blocked, if any of the negated conditions fails.all,env, +host, andipwith the +Require+ directive. +For full details and examples, see the + Access Control howto.
Access Control backwards compatibility
@@ -587,9 +534,8 @@Authentication Caching ¶
There may be times when authentication puts an unacceptable load on a provider or on your network. This is most likely to affect users - of
mod_authn_dbd(or third-party/custom providers). - To deal with this, HTTPD 2.3/2.4 introduces a new caching provider -mod_authn_socacheto cache credentials and reduce + ofmod_authn_dbd(or third-party/custom providers). The +mod_authn_socachemodule caches credentials and reduces the load on the origin provider(s).This may offer a substantial performance boost to some users.
AllowOverridedu style : -AllowOverride AuthConfig- +AllowOverride AuthConfig+Si vous avez l'intention d'ajouter les directives directement - dans le fichier de configuration principal, vous devrez bien entendu + dans le fichier de configuration principal, vous devrez bien entendu posséder les droits en écriture sur ce fichier.
Vous devrez aussi connaître un tant soit peu la structure des @@ -224,13 +224,13 @@ fichier
-httpd.confà l'intérieur d'une section <Directory "/usr/local/apache/htdocs/secret"> :AuthType Basic +AuthType Basic AuthName "Restricted Files" -# (Following line optional) +# (La ligne suivante est facultative) AuthBasicProvider file AuthUserFile "/usr/local/apache/passwd/passwords" Require user rbowen- +Examinons ces directives une à une. La directive
@@ -323,16 +324,16 @@ mots de passe)..AuthTypedéfinit la méthode utilisée pour authentifier l'utilisateur. La méthode la plus @@ -241,7 +241,8 @@ être utilisée pour la transmission de données hautement sensibles si elle n'est pas associée au modulemod_ssl. Apache supporte une autre méthode d'authentification :AuthType - Digest. Cette méthode est implémentée par le modulemod_auth_digestet a été conçue pour + Digest. Cette méthode est implémentée + par le modulemod_auth_digestet a été conçue pour améliorer la sécurité. Ce but n'a cependant pas été atteint et il est préférable de chiffrer la connexion avecmod_ssl.Maintenant, vous devez modifier votre fichier -
+.htaccessou la section<Directory>comme suit :.htaccesscomme suit : -AuthType Basic +AuthType Basic AuthName "By Invitation Only" -# Optional line: +# Ligne facultative : AuthBasicProvider file AuthUserFile "/usr/local/apache/passwd/passwords" AuthGroupFile "/usr/local/apache/passwd/groups" Require group GroupName- +Maintenant, quiconque appartient au groupe
-Nom-de-groupe, et possède une entrée dans le fichier @@ -343,13 +344,19 @@ l'accès à plusieurs personnes. Plutôt que de créer un fichier de groupes, il vous suffit d'ajouter la directive suivante :Require valid-user- +Require valid-user+Le remplacement de la ligne
+ tapé le bon mot de passe. Vous pouvez même simuler le comportement + des groupes en associant un fichier de mots de passe différent pour + chaque groupe. L'avantage de cette approche réside dans le fait + qu'Apache ne doit consulter qu'un fichier au lieu de deux. Par + contre, vous devez maintenir un nombre plus ou moins important de + fichiers de mots de passe, et vous assurer de faire référence au bon + fichier dans la directiveRequire user rbowenpar la ligneRequire valid-userautorisera l'accès à quiconque possédant une entrée dans le fichier password, et ayant - tapé le bon mot de passe.AuthUserFile.+Problèmes possibles ¶
@@ -390,16 +397,14 @@Par exemple, pour sélectionner un fichier dbm à la place d'un fichier texte :
-<Directory "/www/docs/private"> - - AuthName "Private" - AuthType Basic - AuthBasicProvider dbm - AuthDBMUserFile "/www/passwords/passwd.dbm" - Require valid-user - +<Directory "/www/docs/private"> +AuthName "Private" +AuthType Basic +AuthBasicProvider dbm +AuthDBMUserFile "/www/passwords/passwd.dbm" +Require valid-user </Directory>- +D'autres options sont disponibles. Consultez la documentation de
@@ -417,17 +422,15 @@ conjointement les fournisseurs d'authentification file et LDAP : -mod_authn_dbmpour plus de détails.<Directory "/www/docs/private"> - - AuthName "Private" - AuthType Basic - AuthBasicProvider file ldap - AuthUserFile "/usr/local/apache/passwd/passwords" - AuthLDAPURL ldap://ldaphost/o=yourorg - Require valid-user - +<Directory "/www/docs/private"> +AuthName "Private" +AuthType Basic +AuthBasicProvider file ldap +AuthUserFile "/usr/local/apache/passwd/passwords" +AuthLDAPURL ldap://ldaphost/o=yourorg +Require valid-user </Directory>- +Dans cet exemple, le fournisseur file va tenter d'authentifier l'utilisateur en premier. S'il n'y parvient pas, le fournisseur LDAP @@ -445,19 +448,17 @@ autorisation à base de fichier de groupes et une autorisation à base de groupes LDAP.
-<Directory "/www/docs/private"> - - AuthName "Private" - AuthType Basic - AuthBasicProvider file - AuthUserFile "/usr/local/apache/passwd/passwords" - AuthLDAPURL ldap://ldaphost/o=yourorg - AuthGroupFile "/usr/local/apache/passwd/groups" - Require group GroupName - Require ldap-group cn=mygroup,o=yourorg - +<Directory "/www/docs/private"> +AuthName "Private" +AuthType Basic +AuthBasicProvider file +AuthUserFile "/usr/local/apache/passwd/passwords" +AuthLDAPURL ldap://ldaphost/o=yourorg +AuthGroupFile "/usr/local/apache/passwd/groups" +Require group GroupName +Require ldap-group cn=mygroup,o=yourorg </Directory>- +Pour un scénario d'autorisation un peu plus avancé, des directives de conteneur d'autorisation comme
<RequireAll>et @@ -523,75 +524,14 @@Utilisation de fournisseurs d'autorisation pour le contrôle d'accès
-La vérification du nom d'utilisateur et du mot de passe ne - constituent qu'un aspect des méthodes d'authentification. - Souvent, le contrôle d'accès à certaines personnes n'est pas - basé sur leur identité ; il peut dépendre, par exemple de leur - provenance.
- -Les fournisseurs d'autorisation
- -all, -env,hostetipvous - permettent d'accorder ou refuser l'accès en - fonction de critères tels que le nom d'hôte ou l'adresse - IP de la machine qui effectue la requête.L'utilisation de ces fournisseurs est spécifiée à l'aide de - la directive
- -Require. Cette directive - permet d'enregistrer quels fournisseurs d'autorisation - seront appelés dans le processus d'autorisation au cours du - traitement de la requête. Par exemple :Require ip address- - -où adresse est une adresse IP (ou une adresse IP - partielle) ou :
- -Require host domain_name- - -où nom_domaine est un nom de domaine entièrement - qualifé (ou un nom de domaine partiel) ; vous pouvez indiquer - plusieurs adresses ou noms de domaines, si vous le désirez.
- -Par exemple, si vous voulez rejeter les spams dont une - machine vous inonde, vous pouvez utiliser ceci :
- -<RequireAll> - Require all granted - Require not ip 10.252.46.165 -</RequireAll>- - -Ainsi, les visiteurs en provenance de cette adresse ne - pourront pas voir le contenu concerné par cette directive. Si, - par contre, vous connaissez le nom de la machine, vous pouvez - utiliser ceci :
- -<RequireAll> - Require all granted - Require not host host.example.com -</RequireAll>- - -Et si vous voulez interdire l'accès à toutes les machines - d'un domaine, vous pouvez spécifier une partie seulement de - l'adresse ou du nom de domaine :
- -<RequireAll> - Require all granted - Require not ip 192.168.205 - Require not host phishers.example.com moreidiots.example - Require not host ke -</RequireAll>- - -L'utilisation de la directive
+<RequireAll>- avec de multiples directives<Require>, toutes avec la négation -not, n'accordera l'accès que si toutes les - conditions négatives sont vérifiées. En d'autres termes, l'accès - sera refusé si au moins une des conditions négatives n'est pas - vérifiée.La vérification du nom d'utilisateur et du mot de passe ne + constituent qu'un aspect des méthodes d'authentification. Vous pouvez + aussi autoriser ou interdire l’accès en fonction d’autres critères tels + que l’adresse IP du client ou le nom d’hôte en utilisant les + fournisseurs d’autorisation
+ +all,env, +hostetipavec la directiveRequire.Pour des détails complets et des exemples, voir le tutoriel Access Control.
@@ -615,23 +555,20 @@ directives afin de faciliter le passage à la version 2.4. Voir le document upgrading pour plus de détails. -Mise en cache de l'authentification ¶
-Dans certains cas, l'authentification constitue une charge - inacceptable pour un fournisseur d'authentification ou votre réseau. - Ceci est susceptible d'affecter les utilisateurs du module -
-mod_authn_dbd(ou les fournisseurs - tiers/personnalisés). Pour résoudre ce problème, HTTPD 2.3/2.4 - propose un nouveau fournisseur de mise en cache, -mod_authn_socache, qui permet de mettre en cache - les données d'authentification, et ainsi réduire la charge du/des - fournisseurs(s) originels.Cette mise en cache apportera un gain en performance substantiel - à certains utilisateurs.
+Dans certains cas, l'authentification constitue une charge inacceptable + pour un fournisseur d'authentification ou votre réseau. Ceci est + susceptible d'affecter les utilisateurs du module +
mod_authn_dbd(ou les fournisseurs tiers/personnalisés). Le + modulemod_authn_socachemet en cache les données + d'authentification, et réduit ainsi la charge du/des fournisseurs(s) + originels.Cette mise en cache apportera un gain en performance + substantiel à certains utilisateurs.
Pour aller plus loin . . . ¶
diff -Nru apache2-2.4.68/docs/manual/howto/cgi.html.en apache2-2.4.69/docs/manual/howto/cgi.html.en --- apache2-2.4.68/docs/manual/howto/cgi.html.en 2026-05-31 13:57:20.000000000 +0000 +++ apache2-2.4.69/docs/manual/howto/cgi.html.en 2026-06-19 14:27:29.000000000 +0000 @@ -58,25 +58,35 @@Configuring httpd to permit CGI ¶
-In order to get your CGI programs to work properly, you'll - need to have httpd configured to permit CGI execution. There - are several ways to do this.
+Your httpd configuration must permit CGI execution before + CGI programs will work. Several ways to do this are described + below.
+ +CGI support is provided by two modules: +
-mod_cgidandmod_cgi. +mod_cgiduses a dedicated external daemon to manage + CGI processes and is required when httpd runs a threaded MPM (such as +eventorworker). +mod_cgiruns CGI programs directly from within the + server process and is used with non-threaded MPMs like +prefork, or on Windows. From a configuration + standpoint they are interchangeable — the directives are the same. + See themod_cgiandmod_cgid+ reference pages for implementation details.Note: If httpd has been built with shared module - support you need to ensure that the module is loaded; in your +If httpd has been built with shared module + support, you need to ensure that the appropriate module is loaded. In your@@ -95,8 +105,8 @@httpd.confyou need to make sure theLoadModule- directive has not been commented out. A correctly configured directive - may look like this: - -LoadModule cgid_module modules/mod_cgid.so- + directive has not been commented out. For a threaded MPM: +- On Windows, or using a non-threaded MPM like prefork, A correctly - configured directive may look like this: + For Windows, or a non-threaded MPM like prefork: -LoadModule cgid_module modules/mod_cgid.so+LoadModule cgi_module modules/mod_cgi.so+LoadModule cgi_module modules/mod_cgi.so+The
-ScriptAliasdirective looks like:ScriptAlias "/cgi-bin/" "/usr/local/apache2/cgi-bin/"- +ScriptAlias "/cgi-bin/" "/usr/local/apache2/cgi-bin/"+The example shown is from your default
httpd.confconfiguration file, if you installed httpd in the default @@ -114,12 +124,12 @@ treated as a CGI program.For example, if the URL -
+http://www.example.com/cgi-bin/test.pl+http://www.example.com/cgi-bin/test.pyis requested, httpd will attempt to execute the file -/usr/local/apache2/cgi-bin/test.pl- and return the output. Of course, the file will have to - exist, and be executable, and return output in a particular - way, or httpd will return an error message./usr/local/apache2/cgi-bin/test.py+ and return the output. The file must exist, be executable, + and produce output in the expected format; otherwise httpd + returns an error.CGI outside of ScriptAlias directories
@@ -136,8 +146,8 @@ the maincgi-bindirectory, they will need to be able to run CGI programs elsewhere. -There are two steps to allowing CGI execution in an arbitrary - directory. First, the
cgi-scripthandler must be +Allowing CGI execution in an arbitrary directory requires + two steps. First, the
@@ -149,19 +159,19 @@ file, to specify that CGI execution was permitted in a particular directory: -cgi-scripthandler must be activated using theAddHandlerorSetHandlerdirective. Second,ExecCGImust be specified in theOptionsdirective.<Directory "/usr/local/apache2/htdocs/somedir"> - Options +ExecCGI +<Directory "/usr/local/apache2/htdocs/somedir"> +Options +ExecCGI </Directory>- +The above directive tells httpd to permit the execution of CGI files. You will also need to tell the server what files are CGI files. The following
-AddHandlerdirective tells the server to treat all - files with thecgiorplextension as CGI + files with thecgiorpyextension as CGI programs:AddHandler cgi-script .cgi .pl- +AddHandler cgi-script .cgi .py+.htaccess files
@@ -179,21 +189,21 @@.cgiin users' directories, you can use the following configuration. -<Directory "/home/*/public_html"> - Options +ExecCGI - AddHandler cgi-script .cgi +- -<Directory "/home/*/public_html"> +Options +ExecCGI +AddHandler cgi-script .cgi </Directory>+If you wish designate a
cgi-binsubdirectory of +To designate a
-cgi-binsubdirectory of a user's directory where everything will be treated as a CGI program, you can use the following.<Directory "/home/*/public_html/cgi-bin"> - Options ExecCGI - SetHandler cgi-script +@@ -202,8 +212,8 @@<Directory "/home/*/public_html/cgi-bin"> +Options ExecCGI +SetHandler cgi-script </Directory>- +Writing a CGI program ¶
-There are two main differences between ``regular'' - programming, and CGI programming.
+CGI programming differs from regular programming in two + ways.
First, all output from your CGI program must be preceded by a MIME-type header. This is HTTP header that tells the client @@ -217,7 +227,7 @@
Secondly, your output needs to be in HTML, or some other format that a browser will be able to display. Most of the time, this will be HTML, but occasionally you might write a CGI - program that outputs a gif image, or other non-HTML + program that outputs a GIF image, or other non-HTML content.
Apart from those two things, writing a CGI program will look @@ -228,45 +238,41 @@
The following is an example CGI program that prints one line to your browser. Type in the following, save it to a - file called
-first.pl, and put it in your + file calledfirst.py, and put it in yourcgi-bindirectory.#!/usr/bin/perl -print "Content-type: text/html\n\n"; -print "Hello, World.";- - -Even if you are not familiar with Perl, you should be able - to see what is happening here. The first line tells httpd - (or whatever shell you happen to be running under) that this - program can be executed by feeding the file to the - interpreter found at the location
+/usr/bin/perl. - The second line prints the content-type declaration we - talked about, followed by two carriage-return newline pairs. - This puts a blank line after the header, to indicate the end - of the HTTP headers, and the beginning of the body. The third - line prints the string "Hello, World.". And that's the end - of it.+ +#!/usr/bin/env python3 +print("Content-type: text/html\n") +print("Hello, World.")+The first line tells the operating system which interpreter + to use. The first
\nin the string plus the newline that +print()adds), which marks the end of HTTP + headers. The secondIf you open your favorite browser and tell it to get the address
- http://www.example.com/cgi-bin/first.pl + http://www.example.com/cgi-bin/first.pyor wherever you put your file, you will see the one line
+ have a good chance of getting about anything working.Hello, World.appear in your browser window. It's not very exciting, but once you get that working, you'll - have a good chance of getting just about anything working.But it's still not working! ¶
-There are four basic things that you may see in your browser - when you try to access your CGI program from the web:
+Four basic things may appear in your browser when you try to + access your CGI program from the web:
- The output of your CGI program
@@ -308,9 +314,8 @@ a file sufficient permissions to be executed bynobodyis to give everyone execute permission on the file: -+
- chmod a+x first.pl -chmod a+x first.py+Also, if your program reads from, or writes to, any other files, those files will need to have the correct permissions @@ -335,11 +340,11 @@ program.
A common manifestation of this is the path to the script - interpreter (often
-perl) indicated in the first + interpreter (oftenpython3) indicated in the first line of your CGI program, which will look something like:#!/usr/bin/perl- +#!/usr/bin/env python3+Make sure that this is in fact the path to the interpreter.
@@ -380,10 +385,10 @@-
cd /usr/local/apache2/cgi-bin
- ./first.pl + ./first.py(Do not call the
perlinterpreter. The shell +(Do not call the
@@ -423,7 +428,7 @@ suexec will be activated.python3interpreter directly. The shell and httpd should find the interpreter using the path information on the first line of the script.)Unless you fully understand suexec, you should not be using it. - To disable suexec, simply remove (or rename) the
suexec+ To disable suexec, remove (or rename) thesuexecbinary pointed to bySUEXEC_BINand then restart the server. If, after reading about suexec, you still wish to use it, then runsuexec -Vto find @@ -456,7 +461,7 @@During the CGI transaction, the server and the browser also set environment variables, so that they can communicate with one another. These are things like the browser type - (Chrome, Firefox, Lynx), the server type (Apache httpd, Nginx, IIS), + (Chrome, Firefox, Lynx), the server type (httpd, Nginx, IIS), the name of the CGI program that is being run, and so on.
These variables are available to the CGI programmer, and @@ -464,7 +469,7 @@ complete list of required variables is at Common Gateway Interface RFC (RFC 3875).
-This simple Perl CGI program will display all of the +
This simple Python CGI program will display all of the environment variables that are being passed around. Two similar programs are included in the
-cgi-bin@@ -476,15 +481,13 @@ add your own environment variables to the basic ones provided by default.#!/usr/bin/perl -use strict; -use warnings; - -print "Content-type: text/html\n\n"; -foreach my $key (keys %ENV) { - print "$key --> $ENV{$key}<br>"; -}+#!/usr/bin/env python3 +import os +print("Content-type: text/html\n") +for key, value in os.environ.items(): +print(f"{key} --> {value}<br>")+STDIN and STDOUT
@@ -524,9 +527,9 @@METHODattribute in theFORMtag.Your program is then responsible for splitting that string - up into useful information. Fortunately, there are libraries - and modules available to help you process this data, as well - as handle other of the aspects of your CGI program.
+ up into useful information. Fortunately, libraries + and modules are available to help you process this data, as well + as handle other aspects of your CGI program.@@ -537,15 +540,14 @@ code library, or module, to do most of the grunt work for you. This leads to fewer errors, and faster development. -If you're writing CGI programs in Perl, modules are - available on CPAN. The most - popular module for this purpose is
- -CGI.pm. You might - also considerCGI::Lite, which implements a minimal - set of functionality, which is all you need in most programs.If you're writing CGI programs in C, there are a variety of - options. One of these is the
+CGIClibrary, from - https://web.mit.edu/wwwdev/www/cgic.html.If you're writing CGI programs in Python, the standard + library's
+cgimodule (deprecated in Python 3.11, + removed in 3.13) handled form parsing. For current Python + versions, use theurllib.parsemodule to parse + query strings and form data. For more complex applications, + consider a lightweight WSGI framework, though that moves + beyond the scope of traditional CGI.For more information ¶
@@ -562,9 +564,9 @@ program was in, and, if possible, the offending code. This will make finding your problem much simpler. -Note that questions about CGI problems should never +
Questions about CGI problems should never be posted to the httpd bug database unless you are sure you - have found a problem in the httpd source code. + have found a problem in the httpd source code.Available Languages: en | diff -Nru apache2-2.4.68/docs/manual/howto/cgi.html.fr.utf8 apache2-2.4.69/docs/manual/howto/cgi.html.fr.utf8 --- apache2-2.4.68/docs/manual/howto/cgi.html.fr.utf8 2026-06-05 12:03:44.000000000 +0000 +++ apache2-2.4.69/docs/manual/howto/cgi.html.fr.utf8 2026-06-29 16:13:37.000000000 +0000 @@ -58,24 +58,34 @@
Configurer httpd pour autoriser CGI ¶
-httpd doit être configuré pour permettre l'exécution des - programmes CGI, pour que vos programmes CGI puissent fonctionner - correctement. Il existe plusieurs méthodes pour y parvenir.
- -Note: si httpd a été compilé avec le support - des modules partagés (DSO), vous devez vous assurer que le module CGI est - chargé ; vous devez pour cela vérifier que la directiveLoadModulecorrespondante n'a pas été - commentée dans votrehttpd.conf. Une directive correcte - doit ressembler à ceci : - -LoadModule cgid_module modules/mod_cgid.so- +La configuration de httpd doit autoriser l’exécution de CGI pour que les + programmes CGI fonctionnent. Il existe plusieurs manières d’y parvenir, qui + sont décrites ci-après.
+ +La prise en charge de CGI est assurée par deux modules : +
+ +mod_cgidetmod_cgi. +mod_cgidutilise un démon externe dédié pour gérer les + processus CGI et est requis lorsque httpd utilise un MPM threadé (tel que +eventouworker).mod_cgi+ exécute les programmes CGI directement depuis le processus du serveur et est + utilisé avec les MPMs non threadés tels queprefork, ou + sous Windows. Du point de vue de la configuration, ils sont interchangeables + — les directives sont les mêmes. Voir les pages de référence de +mod_cgietmod_cgidpour les détails de + l’implémentation.Si httpd a été compilé avec le support des modules + partagés (DSO), vous devez vous assurer que le module approprié est chargé ; + vous devez pour cela vérifier que la directive@@ -91,8 +101,8 @@LoadModulecorrespondante n'a pas été commentée + dans votrehttpd.conf. Pour un MPM threadé : +- Sous Windows, ou si l'on utilise un module MPM non-threadé comme prefork, - une directive correctement configurée sera du style : + Pour Windows, ou un MPM non threadé comme prefork : -LoadModule cgid_module modules/mod_cgid.so+LoadModule cgi_module modules/mod_cgi.so+LoadModule cgi_module modules/mod_cgi.so+La directive
-ScriptAliasse présente comme suit :ScriptAlias "/cgi-bin/" "/usr/local/apache2/cgi-bin/"- +ScriptAlias "/cgi-bin/" "/usr/local/apache2/cgi-bin/"+Cet exemple est tiré de votre fichier de configuration
httpd.confpar défaut, si vous avez installé httpd @@ -113,12 +123,11 @@ tant que programme CGI.Par exemple, si une requête pour l'URL -
+http://www.example.com/cgi-bin/test.plest - effectuée, httpd tentera d'exécuter le fichier -/usr/local/apache2/cgi-bin/test.plet en renverra la - sortie. Bien entendu, le fichier doit exister, être exécutable, et - retourner sa sortie d'une manière particulière, sinon httpd - renverra un message d'erreur.http://www.example.com/cgi-bin/test.pyest effectuée, httpd + tentera d'exécuter le fichier +/usr/local/apache2/cgi-bin/test.pyet en renverra la sortie. + Le fichier doit exister, être exécutable, et produire une sortie sous le + format attendu, sinon httpd renverra un message d'erreur.CGI en dehors des répertoires ScripAlias
@@ -156,20 +165,20 @@ l'exécution des programmes CGI est permise depuis un répertoire particulier : -<Directory "/usr/local/apache2/htdocs/somedir"> - Options +ExecCGI +<Directory "/usr/local/apache2/htdocs/somedir"> +Options +ExecCGI </Directory>- +La directive ci-dessus indique à httpd qu'il doit permettre l'exécution des fichiers CGI. Vous devez aussi indiquer au serveur quels fichiers sont des fichiers CGI. La directive
-AddHandlersuivante indique au serveur qu'il doit traiter tous les fichiers possédant une - extensioncgiouplen tant que + extensioncgioupyen tant que programmes CGI :AddHandler cgi-script .cgi .pl- +AddHandler cgi-script .cgi .py+Fichiers .htaccess
@@ -189,21 +198,21 @@ répertoire utilisateur, vous pouvez utiliser la configuration suivante : -<Directory "/home/*/public_html"> - Options +ExecCGI - AddHandler cgi-script .cgi +<Directory "/home/*/public_html"> +Options +ExecCGI +AddHandler cgi-script .cgi </Directory>- +Pour indiquer un sous-répertoire
-cgi-bind'un répertoire utilisateur où tout fichier sera traité en tant que programme CGI, vous pouvez utiliser ceci :<Directory "/home/*/public_html/cgi-bin"> - Options ExecCGI - SetHandler cgi-script +@@ -212,8 +221,8 @@<Directory "/home/*/public_html/cgi-bin"> +Options ExecCGI +SetHandler cgi-script </Directory>- +Ecrire un programme CGI ¶
-Il y a deux différences principales entre la programmation - "standard" et la programmation CGI.
+La programmation CGI diffère de la programmation + "standard" sur deux points.
En premier lieu, toute sortie de votre programme CGI doit être précédée d'un en-tête MIME-type. Il s'agit d'un @@ -227,7 +236,7 @@
En second lieu, votre sortie doit être en HTML, ou tout autre format qu'un navigateur est en mesure d'afficher. La plupart du temps, il s'agira de HTML, mais occasionnellement, vous pouvez être - amené à écrire un programme CGI qui renvoie une image gif, ou un + amené à écrire un programme CGI qui renvoie une image GIF, ou un autre type de contenu non-HTML.
A part ces deux différences, un programme CGI ressemblera à tout @@ -239,32 +248,26 @@
L'exemple suivant est un exemple de programme CGI qui permet d'afficher une ligne de caractères dans votre navigateur. Ecrivez ce qui suit, enregistrez le dans un fichier nommé -
-premier.pl, et placez le dans votre répertoire +premier.py, et placez le dans votre répertoirecgi-bin.#!/usr/bin/perl -print "Content-type: text/html\n\n"; -print "Hello, World.";- - -Même si Perl ne vous est pas familier, vous devriez être - capable de comprendre le fonctionnement de ce programme. La - première ligne indique à httpd (ou à toute interface à partir de - laquelle le programme s'exécute) que ce programme peut être - exécuté en fournissant son fichier à l'interpréteur -
+/usr/bin/perl. La seconde ligne affiche la - déclaration du type de contenu considéré, suivie de deux paires - "Retour chariot - Nouvelle ligne". Ceci a pour effet d'insérer une - ligne vide après l'en-tête pour marquer la fin des en-têtes HTTP, - et le début du corps du document. La troisième ligne affiche la - chaîne de caractères "Bonjour tout le monde . . .". Et c'est tout - ce dont vous avez besoin.+ +#!/usr/bin/env python3 +print("Content-type: text/html\n") +print("Hello, World.")+La première ligne indique au système d’exploitation quel interpréteur + utiliser. La première invocation de print affiche l’en-tête content-type + suivi d’une ligne vide (le
\ndans la chaîne et la nouvelle + ligne qu’ajouteprint()), qui matérialise la fin des en-têtes + HTTP. La seconde invocation de print affiche le corps. C’est là tout ce + dont un programme CGI a besoin pour produire une réponse.Si vous ouvrez votre navigateur favori et lui indiquez l'adresse
- http://www.example.com/cgi-bin/premier.pl + http://www.example.com/cgi-bin/premier.pyou toute autre URL correspondant à votre programme CGI, Vous @@ -279,9 +282,8 @@
Mais ça ne marche toujours pas ! ¶
-Vous devriez voir au moins une des quatre sorties suivantes dans - votre navigateur lorsque vous essayez d'accéder à votre programme - CGI depuis le web :
+Quatre sorties basiques pourront apparaître dans votre navigateur lorsque + vous essayez d'accéder à votre programme CGI depuis le web :
- Le flux de sortie de votre programme CGI
@@ -326,9 +328,8 @@nobody, il suffit de lui attribuer des droits d'exécution pour tout le monde : -+
- chmod a+x premier.pl -chmod a+x first.py+En outre, si votre programme doit pouvoir accéder en lecture et/ou écriture à d'autres fichiers, ces derniers devront avoir les @@ -355,12 +356,12 @@ CGI.
Un exemple typique de spécification de programme est le chemin - vers l'interpréteur de script (souvent
-perl) que l'on + vers l'interpréteur de script (souventpython3) que l'on trouve à la première ligne de votre programme CGI et qui va ressembler à ceci :#!/usr/bin/perl- +#!/usr/bin/env python3+Assurez-vous qu'il s'agit bien du chemin correct vers l'interpréteur.
@@ -405,10 +406,10 @@-
cd /usr/local/apache2/cgi-bin
- ./premier.pl + ./premier.py(N'invoquez pas l'interpréteur
perl. Le shell et +(N'invoquez pas l'interpréteur
@@ -454,7 +455,7 @@python3. Le shell et httpd doivent être capable de le déterminer à partir de l'information sur le chemin située sur la première ligne du script.)Si vous ne maîtrisez pas le fonctionnement de suexec, il vous est déconseillé de l'utiliser. Pour désactiver suexec, supprimer - simplement (ou renommez) l'exécutable
-suexec+ (ou renommez) l'exécutablesuexecpointé parSUEXEC_BINet redémarrez le serveur. Si après une lecture de suexec, vous décidez quand-même de l'utiliser, tapez la commandesuexec @@ -499,7 +500,7 @@ variables requises se trouve dans la RFC 3875 (Common Gateway Interface).Ce programme CGI basique en Perl permet d'afficher toutes les +
Ce programme CGI basique en Python permet d'afficher toutes les variables d'environnement qui sont échangées. Deux programmes similaires sont fournis avec la distribution de httpd et situés dans le répertoire
-cgi-bin. @@ -511,15 +512,13 @@ variables d'environnement aux variables de base fournies par défaut.#!/usr/bin/perl -use strict; -use warnings; - -print "Content-type: text/html\n\n"; -foreach my $key (keys %ENV) { - print "$key --> $ENV{$key}<br>"; -}+#!/usr/bin/env python3 +import os +print("Content-type: text/html\n") +for key, value in os.environ.items(): +print(f"{key} --> {value}<br>")+STDIN et STDOUT
@@ -577,15 +576,13 @@ partie du travail de base pour vous. Ceci vous permettra de diminuer le nombre d'erreurs et d'accélérer le développement. -Si vous écrivez des programmes CGI en Perl, des modules sont à - votre disposition à CPAN. A ce - sujet, le module le plus populaire est
- -CGI.pm. Vous - pouvez aussi essayerCGI::Lite, qui implémente les - fonctionnalités strictement nécessaires, mais suffisantes pour - la majorité des programmes.Si vous écrivez des programmes CGI en C, vous disposez de nombreuses - options. L'une d'elles est la bibliothèque
+CGICde https://web.mit.edu/wwwdev/www/cgic.html.Si vous écrivez des programmes CGI en Python, le module
cgi+ de la bibliothèque standard (obsolète dans Python 3.11, supprimé dans Python + 3.13) prenait en charge l’analyse de formulaire. Avec les versions actuelles + de Python, utilisez le moduleurllib.parsepour analyser les + chaîne de paramètres et les données de formulaire. Pour des applications + plus complexes, orientez-vous vers un cadriciel WSGI léger, bien que cela + aille au-delà du domaine de la CGI traditionnelle.Pour plus d'informations ¶
@@ -603,10 +600,10 @@ programme CGI a été écrit, et, si possible, son code source. Ceci permettra une résolution plus aisée de votre problème. -Notez que les questions à propos de problèmes CGI ne doivent +
Les questions à propos de problèmes CGI ne doivent jamais être postées dans la base de données de bogues de httpd, à moins que vous ne soyez sûr d'avoir trouvé un - problème dans le code source de httpd. + problème dans le code source de httpd.Langues Disponibles: en | diff -Nru apache2-2.4.68/docs/manual/howto/htaccess.html.en apache2-2.4.69/docs/manual/howto/htaccess.html.en --- apache2-2.4.68/docs/manual/howto/htaccess.html.en 2026-05-31 13:57:20.000000000 +0000 +++ apache2-2.4.69/docs/manual/howto/htaccess.html.en 2026-06-19 14:27:29.000000000 +0000 @@ -67,8 +67,8 @@ if you would rather call the file
-.configthen you can put the following in your server configuration file:AccessFileName ".config"- +AccessFileName ".config"+Directives in
.htaccessfiles use the same syntax as @@ -81,7 +81,7 @@.htaccessfile, whileAllowOverrideListnames individual directives to permit (see below). If a directive is permitted, the documentation for that directive will contain an Override section, - specifying what value must be inAllowOverridein order for that + specifying what value must be inAllowOverridefor that directive to be permitted.The default value ofAllowOverrideisNone. @@ -92,7 +92,7 @@ directive, you will find that it is permitted in.htaccessfiles. (See the Context line in the directive summary.) The Override line readsFileInfo. Thus, you must have at least -AllowOverride FileInfoin order for this directive to be +AllowOverride FileInfofor this directive to be honored in.htaccessfiles.@@ -129,34 +129,34 @@.htaccessfile is loaded every time a document is requested. -Further note that httpd must look for
.htaccessfiles - in all higher-level directories, in order to have a full complement of - directives that it must apply. (See section on how +Additionally, httpd must look for
-.htaccessfiles + in all higher-level directories to assemble the full set of applicable + directives. (See section on how directives are applied.) Thus, if a file is requested out of a directory/www/htdocs/example, httpd must look for the following files:/.htaccess +/.htaccess /www/.htaccess /www/htdocs/.htaccess /www/htdocs/example/.htaccess- +And so, for each file access out of that directory, there are 4 additional file-system accesses, even if none of those files are - present. (Note that this would only be the case if + present. (This would only be the case if
.htaccessfiles were enabled for/, which is not usually the case.)Security: You are permitting users to modify server configuration, which may result in changes over which you have no control. Carefully consider whether you want to give - your users this privilege. Note also that giving users less + your users this privilege. Giving users less privileges than they need will lead to additional technical support requests. Make sure you clearly tell your users what level of privileges you have given them. Specifying exactly what you have set
AllowOverrideto, and pointing them - to the relevant documentation, will save yourself a lot of confusion + to the relevant documentation, prevents confusion later.If you need to grant
-.htaccessaccess but want to @@ -165,48 +165,46 @@ lets you name individual directives that are permitted, providing finer-grained control thanAllowOverridealone:# Allow only specific directives, not entire categories +# Allow only specific directives, not entire categories AllowOverride None AllowOverrideList Redirect RedirectMatch RewriteEngine RewriteRule RewriteCond- +With this configuration, any directive not explicitly listed will cause a server error if encountered in a
-.htaccessfile. This is a useful middle ground between full override access and no override access.Note that it is completely equivalent to put a
.htaccess- file in a directory/www/htdocs/examplecontaining a - directive, and to put that same directive in a Directory section -<Directory "/www/htdocs/example">in your main server +Placing a directive in a
.htaccess+ file in a directory/www/htdocs/exampleis completely equivalent to placing that same directive in a +<Directory "/www/htdocs/example">section in your main server configuration:
.htaccessfile in/www/htdocs/example:+Contents of .htaccess file in -
/www/htdocs/exampleAddType text/example ".exm"-/www/htdocs/exampleAddType text/example ".exm"+Section from your
httpd.conf- file<Directory "/www/htdocs/example"> - AddType text/example ".exm" + file+<Directory "/www/htdocs/example"> +AddType text/example ".exm" </Directory>-The use of
-.htaccessfiles can be disabled completely by setting theAllowOverridedirective tonone:AllowOverride None- +AllowOverride None+How directives are applied ¶
The configuration directives found in a
.htaccessfile are applied to the directory in which the.htaccessfile - is found, and to all subdirectories thereof. However, it is important - to also remember that there may have been.htaccessfiles + is found, and to all subdirectories thereof. Remember that there may have been.htaccessfiles in directories higher up. Directives are applied in the order that they are found. Therefore, a.htaccessfile in a particular directory may override directives found in.htaccessfiles @@ -219,18 +217,18 @@In the directory
-/www/htdocs/example1we have a.htaccessfile containing the following:Options +ExecCGI- +-Options +ExecCGI+(Note: you must have "
AllowOverride Options" in effect +You must have "AllowOverride Options" in effect to permit the use of the "Options" directive in -.htaccessfiles.) +.htaccessfiles.In the directory
-/www/htdocs/example1/example2we have a.htaccessfile containing:Options Includes- +Options Includes+Because of this second
-.htaccessfile, in the directory/www/htdocs/example1/example2, CGI execution is not @@ -250,14 +248,14 @@ prevent script execution while allowing anything else to be set in.htaccessyou can use:<Directory "/www/htdocs"> - AllowOverride All +<Directory "/www/htdocs"> +AllowOverride All </Directory> <Location "/"> - Options +IncludesNoExec -ExecCGI +Options +IncludesNoExec -ExecCGI </Location>- +This example assumes that your@@ -274,15 +272,15 @@DocumentRootis/www/htdocs.-
.htaccessfile contents:AuthType Basic +- -AuthType Basic AuthName "Password Required" AuthUserFile "/www/passwords/password.file" AuthGroupFile "/www/passwords/group.file" Require group admins+Note that
+AllowOverride AuthConfigmust be in effect - for these directives to have any effect.AllowOverride AuthConfigmust be in effect + for these directives to have any effect.Please see the authentication tutorial for a more complete discussion of authentication and authorization.
@@ -295,14 +293,14 @@ configuration directives, placed in a.htaccessfile in the desired directory: -Options +Includes +- -Options +Includes AddType text/html "shtml" AddHandler server-parsed shtml+Note that
-AllowOverride OptionsandAllowOverride +AllowOverride OptionsandAllowOverride FileInfomust both be in effect for these directives to have any - effect. + effect.Please see the SSI tutorial for a more complete discussion of server-side includes.
@@ -315,7 +313,7 @@ the current directory, rather than being the original requested URI. Consider the following examples:# In httpd.conf +# In httpd.conf RewriteRule "^/images/(.+)\.jpg" "/images/$1.png" # In .htaccess in root dir @@ -323,7 +321,7 @@ # In .htaccess in images/ RewriteRule "^(.+)\.jpg" "$1.png"- +In a
-.htaccessin your document directory, the leading slash is removed from the value supplied toRewriteRule, and in the @@ -331,7 +329,7 @@ it. Thus, your regular expression needs to omit that portion as well.Also note that in
.htaccesscontext, regular expressions are +In
@@ -352,21 +350,21 @@ execution of CGI programs in a particular directory. This may be implemented with the following configuration: -.htaccesscontext, regular expressions are recompiled on every request, whereas in the main server configuration they are compiled once and cached.Options +ExecCGI +Options +ExecCGI AddHandler cgi-script "cgi" "py"- +Alternately, if you wish to have all files in the given directory be considered to be CGI programs, this may be done with the following configuration:
-Options +ExecCGI +- -Options +ExecCGI SetHandler cgi-script+Note that
-AllowOverride OptionsandAllowOverride +AllowOverride OptionsandAllowOverride FileInfomust both be in effect for these directives to have any - effect. + effect.Please see the CGI tutorial for a more complete discussion of CGI programming and configuration.
@@ -386,8 +384,8 @@ nonsense word in your.htaccessfile and reload the page:TestMe- +TestMe+If a server error (HTTP 500) is not generated, then you almost certainly have
-AllowOverride @@ -398,12 +396,11 @@ that the directive used in your.htaccessfile is not permitted.[Tue May 06 09:12:31.528374 2025] [core:alert] [pid 12345] [client 192.168.1.50:54321] /var/www/html/.htaccess: DirectoryIndex not allowed here- +[Thu Jun 18 09:12:31.528374 2026] [core:alert] [pid 12345] [client 192.168.1.50:54321] /var/www/html/.htaccess: DirectoryIndex not allowed here+This will indicate either that you've used a directive that is - never permitted in
@@ -411,8 +408,8 @@.htaccessfiles, or that you simply - don't haveAllowOverrideset to + never permitted in.htaccessfiles, or that you don't haveAllowOverrideset to a level sufficient for the directive you've used. Consult the documentation for that particular directive to determine which is the case.Alternately, it may tell you that you had a syntax error in your usage of the directive itself.
-[Tue May 06 09:14:02.946218 2025] [core:alert] [pid 12345] [client 192.168.1.50:54321] /var/www/html/.htaccess: RewriteCond: bad flag delimiters- +[Thu Jun 18 09:14:02.946218 2026] [core:alert] [pid 12345] [client 192.168.1.50:54321] /var/www/html/.htaccess: RewriteCond: bad flag delimiters+In this case, the error message should be specific to the particular syntax error that you have committed.
diff -Nru apache2-2.4.68/docs/manual/howto/htaccess.html.fr.utf8 apache2-2.4.69/docs/manual/howto/htaccess.html.fr.utf8 --- apache2-2.4.68/docs/manual/howto/htaccess.html.fr.utf8 2026-06-05 12:03:44.000000000 +0000 +++ apache2-2.4.69/docs/manual/howto/htaccess.html.fr.utf8 2026-07-01 15:26:27.000000000 +0000 @@ -73,8 +73,8 @@.config, vous pouvez mettre ceci dans le fichier de configuration de votre serveur : -AccessFileName ".config"- +AccessFileName ".config"+Les directives dans les fichiers
+ soit autorisée..htaccessutilisent la même @@ -88,7 +88,7 @@ directive est permise dans un fichier.htaccess, la documentation de cette directive contiendra une section Override, spécifiant quelle valeur doit prendre la directiveAllowOverridepour que cette directive - soit traitée.La valeur par défaut de la directiveAllowOverrideestNone. Cela signifie que les fichiers.htaccessseront complètement ignorés, à moins @@ -143,25 +143,23 @@.htaccessest chargé en mémoire chaque fois qu'un document fait l'objet d'une requête. -Notez aussi que httpd doit rechercher les fichiers -
+.htaccessdans tous les répertoires de niveau - supérieur, afin de rassembler toutes les directives qui s'appliquent - au répertoire courant (Voir la section comment sont - appliquées les directives). Ainsi, si un fichier fait l'objet - d'une requête à partir d'un répertoire -/www/htdocs/exemple, httpd doit rechercher les - fichiers suivants :En outre, httpd doit rechercher des fichiers
-.htaccessdans + tous les répertoires de niveau supérieur pour rassembler la totalité des + directives applicables (Voir la section comment sont + appliquées les directives). Ainsi, si un fichier fait l'objet d'une + requête à partir d'un répertoire/www/htdocs/exemple, httpd + doit rechercher les fichiers suivants :/.htaccess +/.htaccess /www/.htaccess /www/htdocs/.htaccess /www/htdocs/example/.htaccess- +En conséquence, chaque accès à un fichier de ce répertoire nécessite 4 accès au système de fichiers supplémentaires pour rechercher des fichiers
@@ -170,7 +168,7 @@ utilisateurs de modifier la configuration du serveur, il peut en résulter des conséquences sur lesquelles vous n'aurez aucun contrôle. Réfléchissez bien avant de donner ce privilège à vos - utilisateurs. Notez aussi que ne pas donner aux utilisateurs les + utilisateurs. Ne pas donner aux utilisateurs les privilèges dont ils ont besoin va entraîner une augmentation des demandes de support technique. Assurez-vous d'avoir informé clairement vos utilisateurs du niveau de privilèges que vous leur @@ -185,41 +183,41 @@ nommer individuellement les directives autorisées, vous permettant ainsi un contrôle plus fin que dans le cas de la directive.htaccess, même si - aucun de ces fichiers n'est présent. Notez que cet exemple ne peut + aucun de ces fichiers n'est présent. Cet exemple ne peut se produire que si les fichiers.htaccessont été autorisés pour le répertoire/, ce qui est rarement le cas.AllowOverrideseule : -# N’autoriser que des directives spécifiques, pas des catégories entières de +# N’autoriser que des directives spécifiques, pas des catégories entières de # directives AllowOverride None AllowOverrideList Redirect RedirectMatch RewriteEngine RewriteRule RewriteCond- +Avec cette configuration, toute directive non explicitement spécifiée causera une erreur du serveur si elle est rencontrée dans un fichier
-.htaccess. C’est un bon compromis entre possibilité et impossibilité totales d’outrepasser la configuration globale.Notez que mettre un fichier
+.htaccesscontenant une - directive dans un répertoire/www/htdocs/exemple- revient exactement au même que mettre la même directive dans une - section Directory<Directory "/www/htdocs/exemple">- du fichier de configuration de votre serveur principal :Placer une directive dans un fichier
-.htaccessdans un + répertoire/www/htdocs/exampleéquivaut exactement à placer + cette même directive dans une section<Directory + "/www/htdocs/example">de la configuration globale de votre + serveur :Fichier
+.htaccessdans -/www/htdocs/exemple:Fichier
.htaccessdans/www/htdocs/example+ :+Contenu du fichier .htaccess dans -
/www/htdocs/exempleAddType text/example ".exm"-/www/htdocs/exampleAddType text/example ".exm"+Section de votre fichier -
httpd.conf<Directory "/www/htdocs/example"> - AddType text/example ".exm" +httpd.conf+<Directory "/www/htdocs/example"> +AddType text/example ".exm" </Directory>-L'utilisation des fichiers
-.htaccesspeut être entièrement désactivée en définissant la directiveAllowOverrideànone:AllowOverride None- +AllowOverride None+Comment sont appliquées les directives ? ¶
@@ -227,7 +225,7 @@Les directives de configuration situées dans un fichier
.htaccesss'appliquent au répertoire dans lequel ce fichier.htaccessse trouve, ainsi qu'à tous ses - sous-répertoires. Cependant, il est important de garder à l'esprit + sous-répertoires. Cependant, souvenez-vous qu'il peut y avoir des fichiers.htaccessdans les répertoires de niveau supérieur. Les directives sont appliquées selon l'ordre dans lequel elles sont rencontrées. Ainsi, les @@ -244,19 +242,19 @@Dans le répertoire
-/www/htdocs/exemple1se trouve un fichier.htaccesscontenant ce qui suit :Options +ExecCGI- +-Options +ExecCGI+Note : "
AllowOverride Options" doit être présent +"AllowOverride Options" doit être présent pour permettre l'utilisation de la directive "Options" dans les fichiers -.htaccess. +.htaccess.Dans le répertoire
-/www/htdocs/exemple1/exemple2se trouve un fichier.htaccesscontenant ce qui suit :Options Includes- +Options Includes+Ainsi, à cause de ce second fichier
-.htaccessdu répertoire/www/htdocs/exemple1/exemple2, l'exécution @@ -280,14 +278,14 @@ définition de toute autre option dans les fichiers.htaccess, vous pouvez utiliser :<Directory "/www/htdocs"> - AllowOverride All +<Directory "/www/htdocs"> +AllowOverride All </Directory> <Location "/"> - Options +IncludesNoExec -ExecCGI +Options +IncludesNoExec -ExecCGI </Location>- +Dans cet exemple, on considère que le chemin défini par la directive+DocumentRootest @@ -305,15 +303,15 @@Contenu du fichier
-.htaccess:AuthType Basic +- -AuthType Basic AuthName "Password Required" AuthUserFile "/www/passwords/password.file" AuthGroupFile "/www/passwords/group.file" Require group admins+Notez que
+AllowOverride AuthConfigdoit être présent - pour que ces directives produisent leur effet.AllowOverride AuthConfigdoit être présent + pour que ces directives produisent leur effet.Vous pouvez vous référer au tutoriel sur l'authentification pour une description plus détaillée de @@ -328,14 +326,14 @@ on utilise les directives de configuration suivantes, placées dans un fichier
-.htaccessenregistré dans le répertoire considéré :Options +Includes +- -Options +Includes AddType text/html "shtml" AddHandler server-parsed shtml+Notez que
-AllowOverride OptionsetAllowOverride +AllowOverride OptionsetAllowOverride FileInfodoivent être tous les deux présents pour que ces - directives puissent produire leur effet. + directives puissent produire leur effet.Vous pouvez vous référer au tutoriel SSI pour une description plus détaillée des SSI.
@@ -348,7 +346,7 @@ sont relatives au répertoire courant, et non à l'URI original. Considérez les exemples suivants :# Dans httpd.conf +# Dans httpd.conf RewriteRule "^/images/(.+)\.jpg" "/images/$1.png" # Dans un fichier .htaccess situé dans le répertoire racine de vos @@ -357,7 +355,7 @@ # Dans un fichier .htaccess situé dans le répertoire images/ RewriteRule "^(.+)\.jpg" "$1.png"- +On voit que si le fichier
-.htaccessse situe à la racine de vos documents, le slash de tête est supprimé de la valeur de @@ -367,7 +365,7 @@ remplacement. Il doit donc en être de même dans votre expression rationnelle.Notez aussi que dans un contexte
.htaccess, les expressions +Dans un contexte
@@ -391,21 +389,21 @@ l’exécution de programmes CGI dans un répertoire particulier. Pour y parvenir, vous pouvez utiliser la configuration suivante : -.htaccess, les expressions rationnelles sont recompilées à chaque requête, alors que dans un contexte de configuration principale, elle ne sont compilées qu’une seule fois et mises en cache.Options +ExecCGI +Options +ExecCGI AddHandler cgi-script "cgi" "py"- +Alternativement, si vous souhaitez que tous les fichiers d'un répertoire donné soient considérés comme des programmes CGI, vous pouvez utiliser la configuration suivante :
-Options +ExecCGI +- -Options +ExecCGI SetHandler cgi-script+Notez que
AllowOverride OptionsetAllowOverride +AllowOverride OptionsetAllowOverride FileInfodoivent être tous les deux présents pour que ces - directives puissent produire leur effet. + directives puissent produire leur effet.Vous pouvez vous référer au tutoriel CGI pour une description plus détaillée de la configuration et de la @@ -427,8 +425,8 @@ dénué de sens dans votre ficher
-.htaccesset de recharger la page :TestMe- +TestMe+Si aucune erreur (HTTP 500) n'est générée par le serveur, il est pratiquement certain qu'une directive @@ -440,12 +438,12 @@ utilisée dans votre fichier
-.htaccessn'est pas permise.[Tue May 06 09:12:31.528374 2025] [core:alert] [pid 12345] [client 192.168.1.50:54321] /var/www/html/.htaccess: DirectoryIndex not allowed here- +[Thu Jun 18 09:12:31.528374 2026] [core:alert] [pid 12345] [client 192.168.1.50:54321] /var/www/html/.htaccess: DirectoryIndex not allowed here+Cela signifie soit que vous utilisez une directive qui n'est jamais permise dans les fichiers
.htaccess, soit - que vous n'avez tout simplement pas défini la directive + que vous n'avez pas défini la directiveAllowOverrideà un niveau suffisant pour la directive que vous utilisez. Consultez la documentation de cette directive pour déterminer quel cas @@ -454,8 +452,8 @@Le journal des erreurs peut aussi vous signaler une erreur de syntaxe dans l'usage de la directive elle-même.
-[Tue May 06 09:14:02.946218 2025] [core:alert] [pid 12345] [client 192.168.1.50:54321] /var/www/html/.htaccess: RewriteCond: bad flag delimiters- +[Thu Jun 18 09:14:02.946218 2026] [core:alert] [pid 12345] [client 192.168.1.50:54321] /var/www/html/.htaccess: RewriteCond: bad flag delimiters+Dans ce cas, le message d'erreur sera spécifique à l'erreur de syntaxe que vous avez commise.
diff -Nru apache2-2.4.68/docs/manual/howto/htaccess.html.pt-br.utf8 apache2-2.4.69/docs/manual/howto/htaccess.html.pt-br.utf8 --- apache2-2.4.68/docs/manual/howto/htaccess.html.pt-br.utf8 2026-05-31 13:57:20.000000000 +0000 +++ apache2-2.4.69/docs/manual/howto/htaccess.html.pt-br.utf8 2026-06-19 14:27:29.000000000 +0000 @@ -30,6 +30,8 @@ ko | pt-brEsta tradução pode estar desatualizada. + Verifique a versão em inglês para alterações recentes.Arquivos
.htaccessoferecem um meio de fazer alterações nas configurações por diretório, sem modificar diretamente os arquivos diff -Nru apache2-2.4.68/docs/manual/howto/http2.html.en apache2-2.4.69/docs/manual/howto/http2.html.en --- apache2-2.4.68/docs/manual/howto/http2.html.en 2026-05-31 13:57:20.000000000 +0000 +++ apache2-2.4.69/docs/manual/howto/http2.html.en 2026-06-19 14:27:29.000000000 +0000 @@ -30,7 +30,7 @@This is the howto guide for the HTTP/2 implementation in Apache httpd. This feature is production-ready and you may expect interfaces and directives to - remain consistent releases. + remain consistent across releases.
- @@ -49,25 +49,39 @@
The HTTP/2 protocol
HTTP/2 is the evolution of the world's most successful application layer protocol, HTTP. It focuses on making more efficient use of network resources. It does not change the fundamentals - of HTTP, the semantics. There are still request and responses and headers and all that. So, if + of HTTP, the semantics. There are still requests and responses and headers and all that. So, if you already know HTTP/1, you know 95% about HTTP/2 as well.
-There has been a lot written about HTTP/2 and how it works. The most normative is, of course, - its RFC 7540 - (also available in more readable formatting, YMMV (RFC 7540)). - So, there you'll find the nuts and bolts.
-But, as RFC do, it's not really a good thing to read first. It's better to first understand - what a thing wants to do and then read the RFC about how it is done. A much - better document to start with is http2 explained - by Daniel Stenberg, the author of curl. It is available in - an ever growing list of languages, too!
-Too Long, Didn't read: there are some new terms and gotchas that need to be kept in mind while reading this document:
+ +The protocol is defined in RFC 9113 (which obsoletes the original + RFC 7540). For a more approachable introduction, see + http2 explained by Daniel Stenberg, + the author of curl. It covers the motivation + and design of HTTP/2 without requiring you to parse RFC notation first.
+ +In short: there are some new terms and gotchas that need to be kept in + mind while reading this document:
+-
- HTTP/2 is a binary protocol, as opposed to HTTP 1.1 that is plain text. The latter is meant to be human readable (for example sniffing network traffic) meanwhile the former is not. More info in the official FAQ question.
+- HTTP/2 is a binary protocol, as opposed to HTTP 1.1 + that is plain text. The latter is meant to be human readable (for example + sniffing network traffic) while the former is not. More info in the official + FAQ question.
- h2 is HTTP/2 over TLS (protocol negotiation via ALPN).
-- h2c is HTTP/2 over TCP.
-- A frame is the smallest unit of communication within an HTTP/2 connection, consisting of a header and a variable-length sequence of octets structured according to the frame type. More info in the official documentation RFC 7540.
-- A stream is a bidirectional flow of frames within the HTTP/2 connection. The correspondent concept in HTTP 1.1 is a request/response message exchange. More info in the official documentation RFC 7540.
-- HTTP/2 is able to run multiple streams of data over the same TCP connection, avoiding the classic HTTP 1.1 head of blocking slow request and avoiding to re-instantiate TCP connections for each request/response (KeepAlive patched the problem in HTTP 1.1 but did not fully solve it).
+- h2c is HTTP/2 over cleartext TCP (without TLS). Note that + h2c has been removed from the current specification but httpd still supports it.
+- A frame is the smallest unit of communication within + an HTTP/2 connection, consisting of a header and a variable-length sequence + of octets structured according to the frame type. More info in the official + documentation RFC 9113.
+- A stream is a bidirectional flow of frames within the + HTTP/2 connection. The corresponding concept in HTTP 1.1 is a request/response + message exchange. More info in the official documentation + RFC 9113.
+- HTTP/2 is able to run multiple streams of data over + the same TCP connection, avoiding the classic HTTP 1.1 head-of-line blocking + of slow requests and avoiding the need to re-instantiate TCP connections + for each request/response (KeepAlive patched the problem in HTTP 1.1 but + did not fully solve it).
@@ -75,30 +89,30 @@The HTTP/2 protocol is implemented by its own httpd module, aptly named
-mod_http2. It implements the complete set - of features described by RFC 7540 and supports HTTP/2 over cleartext (http:), as + of features described by RFC 9113 and supports HTTP/2 over cleartext (http:), as well as secure (https:) connections. The cleartext variant is named 'h2c', the secure one 'h2'. Forh2cit allows the direct mode and theUpgrade:via an initial HTTP/1 request.One feature of HTTP/2 that offers new capabilities for web developers is - Server Push. See that section on how your web application - can make use of it.
+One feature of HTTP/2 that formerly offered new capabilities for web developers is + Server Push, though it is now deprecated. See the + Early Hints section for the recommended alternative.
@@ -107,54 +121,54 @@Build httpd with HTTP/2 support ¶
mod_http2uses the library of nghttp2 - as its implementation base. In order to buildmod_http2you need at least version 1.2.1 of + as its implementation base. Buildingmod_http2requires at least version 1.2.1 oflibnghttp2installed on your system.When you
-./configureyour Apache httpd source tree, you need to give it '--enable-http2' as additional argument to trigger the build of the module. Should yourlibnghttp2reside in an unusual place (whatever that is on your operating system), you may announce its location with '--with-nghttp2=<path>' toconfigure.While that should do the trick for most, they are people who might prefer a statically +
While that should do the trick for most, there are people who might prefer a statically linked
+ exists. It works quite similarly to how one statically links openssl tonghttp2in this module. For those, the option--enable-nghttp2-staticlib-deps- exists. It works quite similar to how one statically links openssl tomod_ssl.mod_ssl.Speaking of SSL, you need to be aware that most browsers will speak HTTP/2 only on
https:- URLs, so you need a server with SSL support. But not only that, you will need a SSL library + URLs, so you need a server with SSL support. But not only that, you will need an SSL library that supports theALPNextension. If OpenSSL is the library you use, you need at least version 1.0.2.When you have a
-httpdbuilt withmod_http2you need some - basic configuration for it becoming active. The first thing, as with every Apache module, + basic configuration for it becoming active. The first thing, as with every httpd module, is that you need to load it:LoadModule http2_module modules/mod_http2.so- +LoadModule http2_module modules/mod_http2.so+The second directive you need to add to your server configuration is
-Protocols h2 http/1.1- +Protocols h2 http/1.1+This allows h2, the secure variant, to be the preferred protocol on your server - connections. When you want to enable all HTTP/2 variants, you simply write:
-Protocols h2 h2c http/1.1- -Depending on where you put this directive, it affects all connections or just - the ones to a certain virtual host. You can nest it, as in:
-Protocols http/1.1 + connections. When you want to enable all HTTP/2 variants, write: ++Protocols h2 h2c http/1.1+Depending on where you put this directive, it affects all connections or only + those to a specific virtual host. You can nest it, as in:
+Protocols http/1.1 <VirtualHost ...> - ServerName test.example.org - Protocols h2 http/1.1 +ServerName test.example.org +Protocols h2 http/1.1 </VirtualHost>- +This allows only HTTP/1 on connections, except SSL connections to
test.example.orgwhich offer HTTP/2.Choose a strong SSLCipherSuite
The
+ the ones listed in the HTTP/2 TLS reject list (RFC 9113).SSLCipherSuiteneeds to be configured with a strong TLS cipher suite. The current version ofmod_http2does not enforce any cipher but most - clients do so. Pointing a browser to ah2enabled server with a inappropriate - cipher suite will force it to simply refuse and fall back to HTTP 1.1. This is a common mistake - that is done while configuring httpd for HTTP/2 the first time, so please keep it in mind to avoid + clients do so. Pointing a browser to ah2enabled server with an inappropriate + cipher suite causes it to refuse and fall back to HTTP 1.1. This is a common mistake + made while configuring httpd for HTTP/2 the first time, so please keep it in mind to avoid long debugging sessions! If you want to be sure about the cipher suite to choose please avoid - the ones listed in the HTTP/2 TLS reject list (RFC 7540).The order of protocols mentioned is also relevant. By default, the first one is the most preferred protocol. When a client offers multiple choices, the one most to the left is selected. In
-Protocols http/1.1 h2- +Protocols http/1.1 h2+the most preferred protocol is HTTP/1 and it will always be selected unless a client only supports h2. Since we want to talk HTTP/2 to clients that support it, the better order is
-Protocols h2 h2c http/1.1- +Protocols h2 h2c http/1.1+There is one more thing to ordering: the client has its own preferences, too. If you want, you can configure your server to select the protocol most preferred by the client:
-ProtocolsHonorOrder Off- +ProtocolsHonorOrder Off+makes the order you wrote the Protocols irrelevant and only the client's ordering will decide.
A last thing: the protocols you configure are not checked for correctness @@ -171,7 +185,7 @@
HTTP/2 is supported in all multi-processing modules that come with httpd. However, if you use the
-preforkmpm, there will be severe restrictions.In
prefork,mod_http2will only process one request at at time +In
@@ -187,9 +201,9 @@prefork,mod_http2will only process one request at a time per connection. But clients, such as browsers, will send many requests at the same time. If one of these takes long to process (or is a long polling one), the other requests will stall.Clients ¶
-Almost all modern browsers support HTTP/2, but only over SSL connections: Firefox (v43), - Chrome (v45), Safari (since v9), iOS Safari (v9), Opera (v35), Chrome for Android (v49) - and Internet Explorer (v11 on Windows10) (source).
+All modern browsers support HTTP/2 over TLS connections + (source). Support has been universal across + major browsers since approximately 2015.
Other clients, as well as servers, are listed on the Implementations wiki, among them implementations for c, c++, common lisp, dart, erlang, haskell, java, nodejs, php, @@ -202,14 +216,16 @@
The first tool to mention is of course curl. Please make sure that your version supports HTTP/2 checking its
-Features:$ curl -V - curl 7.45.0 (x86_64-apple-darwin15.0.0) libcurl/7.45.0 OpenSSL/1.0.2d zlib/1.2.8 nghttp2/1.3.4 - Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 [...] - Features: IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP HTTP2 -- -Mac OS homebrew notes
- brew install curl --with-openssl --with-nghttp2 ++$ curl -V +curl 8.20.0 (x86_64-pc-linux-gnu) libcurl/8.20.0 OpenSSL/3.5.7 zlib/1.3.1 nghttp2/1.69.0 +Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 [...] +Features: IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP HTTP2 ++macOS Homebrew notes
+Homebrew's
curlincludes HTTP/2 support by default. Install with +brew install curland follow the displayed caveats to put it ahead + of the system curl in your PATH.And for really deep inspection wireshark.
The nghttp2 package also includes clients, such as:
@@ -219,13 +235,19 @@Chrome offers detailed HTTP/2 logs on its connections via the special net-internals page. There is also an - interesting extension for Chrome - and Firefox - to visualize when your browser is using HTTP/2.
+ interesting extension for Chrome + and Firefox + to indicate when your browser is using HTTP/2.Server Push ¶
+Deprecation Notice
+Server Push is deprecated in RFC 9113. Major browsers + (Chrome 106+, Edge 106+) have removed support for it. While
+mod_http2+ still implements push, new deployments should use 103 Early Hints + instead as a more reliable way to inform clients about needed resources.The HTTP/2 protocol allows the server to PUSH responses to a client it never asked for. The tone of the conversation is: "here is a request that you never sent and the response to it will arrive soon..."
@@ -242,53 +264,53 @@To summarize: there is no one good strategy on how to make best use of this feature of HTTP/2 and everyone is still experimenting. So, how do you experiment with it in Apache httpd?
-
mod_http2inspect response header forLinkheaders +-
mod_http2inspects response headers forLinkheaders in a certain format:Link </xxx.css>;rel=preload, </xxx.js>; rel=preload- +Link </xxx.css>;rel=preload, </xxx.js>; rel=preload+If the connection supports PUSH, these two resources will be sent to the client. As a web developer, you may set these headers either directly in your application response or you configure the server via
-<Location /xxx.html> - Header add Link "</xxx.css>;rel=preload" - Header add Link "</xxx.js>;rel=preload" +<Location /xxx.html> +Header add Link "</xxx.css>;rel=preload" +Header add Link "</xxx.js>;rel=preload" </Location>- +If you want to use
-preloadlinks without triggering a PUSH, you can use thenopushparameter, as inLink </xxx.css>;rel=preload;nopush- +Link </xxx.css>;rel=preload;nopush+or you may disable PUSHes for your server entirely with the directive
-H2Push Off- +H2Push Off+And there is more:
The module will keep a diary of what has been PUSHed for each connection (hashes of URLs, basically) and will not PUSH the same resource twice. When the connection closes, this information is discarded.
There are people thinking about how a client can tell a server what it - already has, so PUSHes for those things can be avoided, but this is all - highly experimental right now.
-Another experimental draft that has been implemented in
+mod_http2+ already has, so PUSHes for those things can be avoided, but no standard + emerged before push was deprecated.An experimental draft that was implemented in
+ what kind of PUSHes it accepts. This draft expired and was never adopted.mod_http2is the Accept-Push-Policy Header Field where a client can, for each request, define - what kind of PUSHes it accepts.PUSH might not always trigger the request/response/performance that one expects or hopes for. There are various studies on this topic to be found on the web that explain benefits and weaknesses and how different features of client and network influence - the outcome. For example: just because the server PUSHes a resource does not mean + the outcome. For example: the fact that the server PUSHes a resource does not mean a browser will actually use the data.
The major thing that influences the response being PUSHed is the request that was simulated. The request URL for a PUSH is given by the application, but where do the request headers come from? For example, will the PUSH request a
-accept-languageheader and if yes with what value?Apache will look at the original request (the one that triggered the PUSH) and copy the +
httpd will look at the original request (the one that triggered the PUSH) and copy the following headers over to PUSH requests:
user-agent,accept,accept-encoding,accept-language,cache-control.All other headers are ignored. Cookies will also not be copied over. PUSHing resources that require a cookie to be present will not work. This can be a matter of debate. But - unless this is more clearly discussed with browser, let's err on the side of caution and - not expose cookie where they might ordinarily not be visible.
+ unless this is more clearly discussed with browsers, let's err on the side of caution and + not expose cookies where they might ordinarily not be visible.Early Hints ¶
@@ -296,23 +318,23 @@An alternative to PUSHing resources is to send
-Linkheaders to the client before the response is even ready. This uses the HTTP feature called "Early Hints" and is described in RFC 8297.In order to use this, you need to explicitly enable it on the server via
-H2EarlyHints on- +To use this, you need to explicitly enable it on the server via
+H2EarlyHints on+(It is not enabled by default since some older browser tripped on such responses.)
If this feature is on, you can use the directive
-H2PushResourceto trigger early hints and resource PUSHes:<Location /xxx.html> - H2PushResource /xxx.css - H2PushResource /xxx.js +<Location /xxx.html> +H2PushResource /xxx.css +H2PushResource /xxx.js </Location>- +This will send out a
"103 Early Hints"response to a client as soon - as the server starts processing the request. This may be much early than + as the server starts processing the request. This may be much earlier than the time the first response headers have been determined, depending on your web application.If
H2Pushis enabled, this will also start the PUSH right after the - 103 response. IfH2Pushis disabled however, the 103 response will be send + 103 response. IfH2Pushis disabled however, the 103 response will be sent nevertheless to the client.diff -Nru apache2-2.4.68/docs/manual/howto/http2.html.fr.utf8 apache2-2.4.69/docs/manual/howto/http2.html.fr.utf8 --- apache2-2.4.68/docs/manual/howto/http2.html.fr.utf8 2026-06-05 12:03:44.000000000 +0000 +++ apache2-2.4.69/docs/manual/howto/http2.html.fr.utf8 2026-07-01 15:26:27.000000000 +0000 @@ -42,7 +42,7 @@Clients
Outils efficaces pour déboguer HTTP/2
- Push serveur
+ Suggestions précoces
EarlyHints
Voir aussi
@@ -53,47 +53,46 @@ plus efficace des ressources réseau. Il ne modifie pas les aspects fondamentaux de HTTP (sa sémantique). Entre autres, il y a toujours des requêtes, des réponses et des en-têtes. Par conséquent, si vous connaissez - HTTP/1, vous connaissez déjà 95% de HTTP/2. -Beaucoup a déjà été écrit à propos de HTTP/2 et de son fonctionnement. La - documentation la plus officielle est bien entendu sa RFC 7540 (ou cette version au format plus - lisible : YMMV (RFC 7540). Vous trouverez ici une description des rouages de HTTP/2 dans - leurs moindres détails.
-Le premier document à lire lorsqu'on ne connaît pas un mécanisme n'est - cependant pas sa RFC. Il est préférable de comprendre tout d'abord ce - que ce mécanisme est censé faire, et seulement ensuite de lire sa RFC - pour comprendre comment il fonctionne. http2 explained de Daniel Stenberg - (l'auteur de curl) - est un bien meilleur document pour démarrer l'étude de HTTP/2. En outre, de - nouveaux langages s'ajoutent régulièrement à sa liste de traductions - disponibles !
-Si vous n'avez pas envie de le lire parce que vous le trouvez trop long, - voici certains pièges à éviter et nouveaux termes à connaître avant de lire - ce document :
+ HTTP/1, vous connaissez déjà 95% deHTTP/2. + +Le protocole est définii dans la RFC 9113 (qui rend obsolète la + RFC 7540 originale). Pour une approche plus abordable, voir le + document http2 explained par Daniel + Stenberg, l’auteur de curl. Il couvre les + but et conception de HTTP/2 sans nécessiter d’analyse de la notation RFC + préalable.
+ +En bref, il y a quelques nouveaux termes et pièges à éviter que vous + devez garder à l’esprit lors de la lecture de ce document :
+-
- A la différence de HTTP/1 qui est en texte pur, HTTP/2 est un - protocole binaire, et alors que le premier est lisible par - un humain (par exemple pour sniffer le trafic réseau), le second ne - l'est pas. Voir la FAQ - officielle pour plus de détails.
+- À l’opposé de HTTP 1.1 qui est un protocole en texte pur, HTTP/2 est + un protocol binaire. Le premier a été pensé pour être + lisible par un humain (par exemple pour surveiller le trafic réseau), + alors que ce n’est pas le cas pour le second. Vous trouverez plus + d’information dans cette question de + la FAQ officielle.
- h2 correspond à HTTP/2 sur TLS (négociation de protocole via ALPN).
-- h2c correspond à HTTP/2 sur TCP.
-- Une frame ou trame est la plus petite unité de - communication au sein d'une connexion HTTP/2 et comporte une en-tête et - une séquence d'octets de longueur variable dont la structure correspond - au type de trame. Voir la section correspondante de la documentation - officielle pour plus de détails (RFC 7540).
- Un - stream est un flux bidirectionnel de frames au sein - d'une connexion HTTP/2. La notion correspondante dans HTTP/1 est un - échange de messages de type requête et réponse. Voir la section - correspondante de la documentation officielle pour plus de détails - (RFC 7540).
-- HTTP/2 peut gérer plusieurs streams de données sur - la même connexion TCP, ce qui permet d'éviter le point de blocage - classique de HTTP/1 pour les requêtes lentes, et de ne pas avoir à - ouvrir de nouvelles connexions TCP pour chaque requête/réponse (les - connexions persistantes ou KeepAlive avaient contourné le problème dans - HTTP/1 mais ne l'avaient pas entièrement résolu)
+- h2c correspond à HTTP/2 sur TCP en texte clair + (sans TLS). Notez que h2c a été supprimé de la spécification actuelle + mais que httpd le prend encore en charge.
+- Une trame (frame) est la plus petite unité de + communication au sein d’une connexion HTTP/2 ; elle comporte un en-tête + et une séquence d’octets de longueur variable structurée en fonction du + type de trame. Vous trouverez plus d’informations dans la documentation + officielle de la RFC 9113.
+- Un flux (stream) est une circulation + bidirectionnelle de trames au sein d’une connexion HTTP/2. Le concept + correspondant dans HTTP 1.1 est un échange de messages requête/réponse. + Vous trouverez plus d’informations dans la documentation officielle de + la RFC 9113.
+- HTTP/2 peut gérer plusieurs flux de données sur la + même connexion TCP, évitant le classique blocage en tête de file + des requêtes HTTP 1.1 lentes, ainsi que la nécessité de réinitier des + connexions TCP pour chaque requête/réponse (KeepAlive contournait le + problème dans HTTP 1.1, mais ne le résolvait pas entièrement).
+@@ -101,14 +100,15 @@Le protocole HTTP/2 est implémenté dans Apache httpd via un module propre, pertinemment nommé
-mod_http2. Ce - module implémente toutes les fonctionnalités décrites par la RFC 7540 et + module implémente toutes les fonctionnalités décrites par la RFC 9113 et supporte les connexions en texte pur (http:), ou sécurisées (https:). La variante texte pur se nomme 'h2c', et la variante sécurisée 'h2'.h2cpeut être en mode direct ouUpgrade:via une requête initiale en HTTP/1.Server Push est une nouvelle fonctionnalité offerte - aux développeurs web par HTTP/2. La section correspondante de ce document - vous indiquera comment votre application peut en tirer parti.
+Server Push était une nouvelle fonctionnalité offerte + aux développeurs web par HTTP/2, mais elle est maintenant obsolète. Voir la + section EarlyHints pour l’alternative + recommandée.
@@ -109,27 +102,24 @@Compilation de httpd avec le support de HTTP/2 ¶
@@ -143,32 +143,31 @@Maintenant que vous disposez d'un binaire
-httpdcompilé avec le modulemod_http2, l'activation de ce dernier nécessite un minimum de configuration supplémentaire. En premier lieu, comme pour tout - module Apache, vous devez le charger :LoadModule http2_module modules/mod_http2.so- + module de httpd, vous devez le charger : +LoadModule http2_module modules/mod_http2.so+La seconde directive que vous devez ajouter à votre fichier de configuration est
-Protocols h2 http/1.1- +Protocols h2 http/1.1+Ceci permet de définir h2, la variante sécurisée, comme le protocole préféré pour les connexions à votre serveur. Si vous souhaitez que toutes les variantes soient disponibles, utilisez la directive suivante :
-Protocols h2 h2c http/1.1- -Selon l'endroit où vous placez cette directive, elle affectera l'ensemble - de votre serveur, ou seulement un ou plusieurs serveurs virtuels. Vous +
+Protocols h2 h2c http/1.1+Selon l'endroit où vous placez cette directive, elle affectera toute les + connexions, ou seulement celles vers un serveur virtuel spécifique. Vous pouvez aussi l'imbriquer comme dans l'exemple suivant :
-Protocols http/1.1 +- -Protocols http/1.1 <VirtualHost ...> - ServerName test.example.org - Protocols h2 http/1.1 +ServerName test.example.org +Protocols h2 http/1.1 </VirtualHost>+Seules les connexions en HTTP/1 seront alors permises, sauf pour le serveur - virtuel
+test.example.orgqui acceptera aussi les connexions SSL - en HTTP/2.Seules les connexions en HTTP/1 seront alors permises, sauf pour les + connexions SSL vers
test.example.orgqui propose aussi HTTP/2.-Utilisez une chaîne d'algorithmes de chiffrement forte
La directive
SSLCipherSuitedoit être définie avec une chaîne d'algorithmes de chiffrement TLS forte. Même si @@ -186,21 +185,22 @@L'ordre des protocoles indiqués est aussi important. Par défaut, le premier sera le protocole préféré. Lorsqu'un client offre plusieurs choix, c'est le plus à gauche qui sera sélectionné. Dans
-Protocols http/1.1 h2- +Protocols http/1.1 h2+le protocole préféré sera HTTP/1 et il sera toujours sélectionné sauf si un client ne supporte que h2. Comme nous souhaitons communiquer en HTTP/2 avec les clients qui le supportent, la meilleure définition de la directive est
-Protocols h2 h2c http/1.1- +Protocols h2 h2c http/1.1+Toujours à propos de l'ordre des protocoles, le client a lui aussi ses propres préférences en la matière. À ce titre, si vous le souhaitez, vous pouvez configurer votre serveur pour qu'il sélectionne non plus son protocole préféré, mais au contraire le protocole préféré du client :
-ProtocolsHonorOrder Off+ProtocolsHonorOrder Off+Avec cette directive, l'ordre des protocoles que vous avez défini devient caduque et seul l'ordre défini par le client sera pris en @@ -244,10 +244,10 @@
Clients ¶
-La plupart des navigateurs modernes supportent HTTP/2, mais seulement sur - des connexions SSL : Firefox v43, Chrome v45, Safari v9, iOS Safari v9, - Opera v35, Chrome pour Android v49 et - Internet Explorer v11 sous Windows10 (selon cette source).
+Tous les navigateurs modernes prennent en charge HTTP/2 sur + des connexions TLS (source). La + prise en charge est devenue universelle sur les navigateurs principaux à peu + près en 2015.
D'autres clients et serveurs sont listés dans le wiki des implémentations ; entre autres des implémentations pour c, c++, common lisp, dart, erlang, haskell, java, nodejs, php, python, perl, ruby, rust, @@ -261,14 +261,17 @@
Le premier d'entre eux est bien entendu curl. Assurez-vous au préalable que votre version supporte HTTP/2 en vérifiant ses
-Fonctionnalités:$ curl -V - curl 7.45.0 (x86_64-apple-darwin15.0.0) libcurl/7.45.0 OpenSSL/1.0.2d zlib/1.2.8 nghttp2/1.3.4 - Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 [...] - Features: IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP HTTP2 -- -homebrew sous Mac OS :
- brew install curl --with-openssl --with-nghttp2 ++$ curl -V +curl 8.20.0 (x86_64-pc-linux-gnu) libcurl/8.20.0 OpenSSL/3.5.7 zlib/1.3.1 nghttp2/1.69.0 +Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 [...] +Features: IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP HTTP2 ++Notes à propos de macOS Homebrew
+
curlde Homebrew inclut par défaut la prise en charge de + HTTP/2. Installez le avec la commandebrew install curlet + suivez les instructions affichées pour le mettre en tête du PATH de votre + système.Pour une inspection en profondeur : wireshark.
Le paquet nghttp2 inclut aussi des @@ -282,13 +285,21 @@
Chrome fournit des journaux détaillés des connexions HTTP/2 via la page special net-internals page. Il y - a aussi cette extension intéressante pour Chrome - et Firefox + a aussi cette extension intéressante pour Chrome + et Firefox qui permet d'indiquer que votre navigateur utilise HTTP/2.
Push serveur ¶
+Notification d’obsolescence
+Server Push est obsolète dans la RFC 9113. Les + navigateurs principaux (Chrome 106+, Edge 106+) ont supprimé sa prise en + charge. Bien que
+mod_http2implémente encore push, les + nouveaux déploiements doivent utiliser 103 Early + Hints à titre de méthode plus fiable pour informer les clients à propos + des ressources nécessaires.Le protocole HTTP/2 permet au serveur de proposer (PUSH) des réponses pour lesquelles le client n'a rien demandé. La communication autour de ces réponses est du style : "voici une requête que vous n'avez jamais @@ -313,25 +324,25 @@ procéder vous-même à ces expérimentations :
-
mod_http2inspecte l'en-tête de la réponse et recherche les en-têtesLinksous un certain format :Link </xxx.css>;rel=preload, </xxx.js>; rel=preload- +Link </xxx.css>;rel=preload, </xxx.js>; rel=preload+Si la connexion supporte PUSH, ces deux ressources seront envoyées au client. En tant que développeur web vous pouvez définir ces en-têtes soit directement au niveau de la réponse de votre application, soit en configurant votre serveur via
-<Location /xxx.html> - Header add Link "</xxx.css>;rel=preload" - Header add Link "</xxx.js>;rel=preload" +<Location /xxx.html> +Header add Link "</xxx.css>;rel=preload" +Header add Link "</xxx.js>;rel=preload" </Location>- +Si vous souhaitez utiliser des liens
-preloadsans déclencher de PUSH, vous pouvez utiliser le paramètrenopushcomme suit :Link </xxx.css>;rel=preload;nopush- +Link </xxx.css>;rel=preload;nopush+Vous pouvez aussi désactiver les PUSHes pour l'ensemble de votre serveur via la directive
-H2Push Off- +H2Push Off+À savoir aussi :
Le module maintient un journal des ressources ayant fait l'objet d'un PUSH pour chaque connexion (en général des condensés hash des URLs), et @@ -339,14 +350,13 @@ lorsque la connexion est fermée, le journal de ses PUSHes est supprimé.
Certains développeurs planchent sur la manière de permettre au client d'informer le serveur des ressources qu'il possède déjà dans son cache afin - d'éviter les PUSHes pour ces dernières, mais ceci n'en est actuellement qu'à - un stade très expérimental.
+ d'éviter les PUSHes pour ces dernières, mais aucune norme n’a émergé avant + que push ne devienne obsolète.L' - en-tête Accept-Push-Policy est un autre dispositif expérimental + en-tête Accept-Push-Policy est un dispositif expérimental implémenté dans
- - + chaque requête quels genres de PUSHes il accepte. Ce dispositif a été + abandonné et n’a jamais été adopté.mod_http2; il permet au client de définir pour - chaque requête quels genres de PUSHes il accepte.La fonctionnalité PUSH n'apportera pas toujours le gain de performances dans l'obtention de réponses aux requêtes. Vous trouverez plusieurs études sur ce @@ -370,7 +380,7 @@ d'exposer les cookies là où ils ne sont pas censés être visibles.
-Suggestions précoces ¶
+EarlyHints ¶
A l'instar des ressources PUSHées, une autre méthode consiste à envoyer des en-têtes
Linkau client avant même que la réponse ne soit @@ -378,18 +388,18 @@ précoces" (Early Hints) décrite dans la RFC 8297.Pour utiliser cette fonctionnalité, vous devez l'activer explicitement sur le serveur via :
-H2EarlyHints on- +H2EarlyHints on+Elle n'est en effet pas activée par défaut car certains navigateurs anciens perdent pied avec de telles réponses.
Une fois cette fonctionnalité activée, vous pouvez utiliser la directive
-H2PushResourcepour déclencher les suggestions précoces et les PUSHes de ressources :<Location /xxx.html> - H2PushResource /xxx.css - H2PushResource /xxx.js +<Location /xxx.html> +H2PushResource /xxx.css +H2PushResource /xxx.js </Location>- +Le serveur enverra alors au client une réponse
-"103 Early Hints"dès qu'il commencera à traiter la requête. Selon votre application web, cet envoi peut intervenir beaucoup plus tôt que le diff -Nru apache2-2.4.68/docs/manual/howto/public_html.html.en apache2-2.4.69/docs/manual/howto/public_html.html.en --- apache2-2.4.68/docs/manual/howto/public_html.html.en 2026-05-31 13:57:20.000000000 +0000 +++ apache2-2.4.69/docs/manual/howto/public_html.html.en 2026-06-19 14:27:29.000000000 +0000 @@ -36,14 +36,20 @@ to a URLhttp://example.com/~username/will get content out of the home directory of the user "username", out of the subdirectory specified by theUserDirdirective.Note that, by default, access to these directories is not +
By default, access to these directories is not enabled. You can enable access when using
-UserDirby uncommenting the line:#Include conf/extra/httpd-userdir.conf- +#Include conf/extra/httpd-userdir.conf+in the default config file
+ +conf/httpd.conf, and adapting thehttpd-userdir.conffile as necessary, or by including the appropriate directives in a<Directory>block within the main config file.Third-party distributions of httpd (from your OS vendor or + package manager) often place themod_userdir+ configuration in a separate file, and may enable it by default. + Check your distribution's documentation for specifics. The examples + in this document assume a default source build of httpd.
Per-user web directories
- @@ -71,8 +77,8 @@ assumed to be a directory path relative to the home directory of the specified user. Given this configuration: -
Setting the file path with UserDir
UserDir public_html- +UserDir public_html+the URL
-http://example.com/~rbowen/file.htmlwill be translated to the file path @@ -82,8 +88,8 @@ constructed using that path, plus the username specified. Given this configuration:UserDir /var/html- +UserDir /var/html+the URL
@@ -92,8 +98,8 @@ in which the asterisk is replaced with the username. Given this configuration: -http://example.com/~rbowen/file.htmlwill be translated to the file path/var/html/rbowen/file.htmlUserDir /var/www/*/docs- +UserDir /var/www/*/docs+the URL
http://example.com/~rbowen/file.htmlwill be translated to the file path @@ -101,14 +107,14 @@Multiple directories or directory paths can also be set.
-UserDir public_html /var/html- +-UserDir public_html /var/html+For the URL
+http://example.com/~rbowen/file.html, - Apache will search for~rbowen. If it isn't found, - Apache will search forrbowenin/var/html. If - found, the above URL will then be translated to the file path -/var/html/rbowen/file.htmlThe arguments are considered in the order they appear. + For the URL
http://example.com/~rbowen/file.html, + httpd will search for~rbowen. If it isn't found, + httpd will then search forrbowenin/var/html. + The file will be served from whichever location is found first.@@ -117,8 +123,8 @@+The
-UserDirdirective can be used to redirect user directory requests to external URLs.UserDir http://example.org/users/*/- +UserDir http://example.org/users/*/+The above example will redirect a request for
http://example.com/~bob/abc.htmlto @@ -132,17 +138,17 @@Using the syntax shown in the UserDir documentation, you can restrict what users are permitted to use this functionality:
-UserDir disabled root jro fish- +UserDir disabled root jro fish+The configuration above will enable the feature for all users except for those listed in the
-disabledstatement. You can, likewise, disable the feature for all but a few users by using a configuration like the following:UserDir disabled +UserDir disabled UserDir enabled rbowen krietz- +See
@@ -152,16 +158,16 @@UserDirdocumentation for additional examples.Enabling a cgi directory for each user ¶
-In order to give each user their own cgi-bin directory, you can use +
To give each user their own cgi-bin directory, you can use a
-<Directory>directive to make a particular subdirectory of a user's home directory cgi-enabled.<Directory "/home/*/public_html/cgi-bin/"> - Options ExecCGI - SetHandler cgi-script +<Directory "/home/*/public_html/cgi-bin/"> +Options ExecCGI +SetHandler cgi-script </Directory>- +Then, presuming that
UserDiris set topublic_html, a cgi programexample.cgi@@ -176,7 +182,7 @@Allowing users to alter configuration ¶
-If you want to allows users to modify the server configuration in +
If you want to allow users to modify the server configuration in their web space, they will need to use
.htaccessfiles to make these changes. Ensure that you have setAllowOverrideto a value sufficient for the directives that you want to permit the users diff -Nru apache2-2.4.68/docs/manual/howto/public_html.html.es apache2-2.4.69/docs/manual/howto/public_html.html.es --- apache2-2.4.68/docs/manual/howto/public_html.html.es 2026-05-31 13:57:20.000000000 +0000 +++ apache2-2.4.69/docs/manual/howto/public_html.html.es 2026-06-19 14:27:29.000000000 +0000 @@ -30,6 +30,10 @@ ko | trEsta traducción podría estar + obsoleta. Consulte la versión en inglés de la + documentación para comprobar si se han producido cambios + recientemente.En sistemas con múltiples usuarios, cada usuario puede tener un website en su directorio home usando la directiva
-UserDir. Los visitantes de una URL diff -Nru apache2-2.4.68/docs/manual/howto/public_html.html.fr.utf8 apache2-2.4.69/docs/manual/howto/public_html.html.fr.utf8 --- apache2-2.4.68/docs/manual/howto/public_html.html.fr.utf8 2026-05-31 13:57:20.000000000 +0000 +++ apache2-2.4.69/docs/manual/howto/public_html.html.fr.utf8 2026-07-01 15:26:27.000000000 +0000 @@ -38,18 +38,25 @@ recevront un contenu situé dans le répertoire home de l'utilisateur "nom_utilisateur", et dans le sous-répertoire spécifié par la directiveUserDir.Notez que par défaut, l'accès à ces répertoires n'est +
Par défaut, l'accès à ces répertoires n'est pas permis. Vous pouvez en permettre l'accès à l'aide de la directive
-UserDiren décommentant la ligne :#Include conf/extra/httpd-userdir.conf- +#Include conf/extra/httpd-userdir.conf+dans le fichier de configuration par défaut
+ +conf/httpd.conf, et en adaptant le fichierhttpd-userdir.confselon vos besoins, ou en incluant les directives appropriées dans une section<Directory>du fichier de configuration principal.Les distributions tierces de httpd (fournies par le fabricant de votre + OS ou par le gestionnaire de paquets) placent souvent la configuration de +mod_userdirdans un fichier séparé, et peuvent l’activer + par défaut. Consultez la documentation de votre distribution pour les + spécificités. Les exemples de ce document présupposent une construction par + défaut à partir des sources de httpd.
Répertoires web utilisateurs
- @@ -80,8 +87,8 @@ interprété comme chemin relatif au répertoire home de l'utilisateur considéré. Par exemple, avec cette configuration : -
Définition du chemin des fichiers avec UserDir
UserDir public_html- +UserDir public_html+l'URL
-http://example.com/~rbowen/fichier.htmlcorrespondra au chemin fichier @@ -91,9 +98,8 @@ sera construit en utilisant ce chemin, suivi du nom de l'utilisateur considéré. Par exemple, avec cette configuration :UserDir /var/html- - +UserDir /var/html+l'URL
@@ -102,8 +108,8 @@ remplacé par le nom de l'utilisateur dans le chemin du fichier correspondant. Par exemple, avec cette configuration : -http://example.com/~rbowen/fichier.htmlcorrespondra au chemin fichier/var/html/rbowen/fichier.htmlUserDir /var/www/*/docs- +UserDir /var/www/*/docs+l'URL
http://example.com/~rbowen/fichier.htmlcorrespondra au chemin fichier @@ -112,14 +118,14 @@On peut aussi définir plusieurs répertoires ou chemins de répertoires.
-UserDir public_html /var/html- +-UserDir public_html /var/html+Avec l'URL
+http://example.com/~rbowen/fichier.html, - Apache va rechercher~rbowen. S'il ne le trouve pas, - Apache va rechercherrbowendans -/var/html. S'il le trouve, l'URL ci-dessus correspondra - au chemin fichier/var/html/rbowen/file.htmlLes arguments sont pris en compte selon l’ordre dans lequel ils + apparaissent. Pour l’URL
http://example.com/~rbowen/file.html, + httpd recherchera d’abord~rbowen. Si ce dernier n’est pas + trouvé, httpd chercherarbowendans/var/html. Le + fichier sera servi depuis le premier emplacement trouvé.@@ -128,8 +134,8 @@+On peut utiliser la directive
-UserDirpour rediriger les requêtes relatives aux répertoires utilisateurs vers des URLs externes.UserDir http://example.org/users/*/- +UserDir http://example.org/users/*/+L'exemple ci-dessus va rediriger une requête pour
-http://example.com/~bob/abc.htmlvers @@ -144,8 +150,8 @@ vous pouvez définir quels utilisateurs sont autorisés à utiliser cette fonctionnalité :UserDir disabled root jro fish- +UserDir disabled root jro fish+La configuration ci-dessus va autoriser l'utilisation de la fonctionnalité pour tous les utilisateurs, à l'exception de ceux @@ -154,10 +160,9 @@ utilisateurs sauf certains d'entre eux en utilisant une configuration du style :
-UserDir disabled +UserDir disabled UserDir enabled rbowen krietz- - +Vous trouverez d'autres exemples dans la documentation de
@@ -170,12 +175,11 @@ vous pouvez utiliser une sectionUserDir.<Directory>pour activer CGI dans un sous-répertoire particulier d'un répertoire home utilisateur. -<Directory "/home/*/public_html/cgi-bin/"> - Options ExecCGI - SetHandler cgi-script +<Directory "/home/*/public_html/cgi-bin/"> +Options ExecCGI +SetHandler cgi-script </Directory>- - +Avec la configuration ci-dessus, et en supposant que
UserDirest défini àpublic_html, un programme CGIexemple.cgipourra être chargé depuis ce diff -Nru apache2-2.4.68/docs/manual/howto/public_html.html.tr.utf8 apache2-2.4.69/docs/manual/howto/public_html.html.tr.utf8 --- apache2-2.4.68/docs/manual/howto/public_html.html.tr.utf8 2026-05-31 13:57:20.000000000 +0000 +++ apache2-2.4.69/docs/manual/howto/public_html.html.tr.utf8 2026-06-19 14:27:29.000000000 +0000 @@ -30,6 +30,7 @@ ko | trBu çeviri güncel olmayabilir. Son değişiklikler için İngilizce sürüm geçerlidir.Çok kullanıcılı sistemlerde,
UserDiryönergesi ile her kullanıcının kendi ev dizininde bir sitesi olması sağlanabilir. diff -Nru apache2-2.4.68/docs/manual/howto/reverse_proxy.html.en apache2-2.4.69/docs/manual/howto/reverse_proxy.html.en --- apache2-2.4.68/docs/manual/howto/reverse_proxy.html.en 2026-05-31 13:57:20.000000000 +0000 +++ apache2-2.4.69/docs/manual/howto/reverse_proxy.html.en 2026-06-19 14:27:29.000000000 +0000 @@ -27,26 +27,19 @@ frIn addition to being a "basic" web server, and providing static and - dynamic content to end-users, Apache httpd (as well as most other web - servers) can also act as a reverse proxy server, also-known-as a - "gateway" server.
- -In such scenarios, httpd itself does not generate or host the data, - but rather the content is obtained by one or several backend servers, - which normally have no direct connection to the external network. As - httpd receives a request from a client, the request itself is proxied - to one of these backend servers, which then handles the request, generates - the content and then sends this content back to httpd, which then - generates the actual HTTP response back to the client.
- -There are numerous reasons for such an implementation, but generally - the typical rationales are due to security, high-availability, load-balancing - and centralized authentication/authorization. It is critical in these - implementations that the layout, design and architecture of the backend - infrastructure (those servers which actually handle the requests) are - insulated and protected from the outside; as far as the client is concerned, - the reverse proxy server is the sole source of all content.
+Besides serving static and dynamic content directly, Apache httpd + can act as a reverse proxy server (sometimes called a gateway).
+ +In this mode, httpd does not generate the content itself. Instead, + it forwards each client request to one or more backend servers that + have no direct connection to the external network. The backend + processes the request and returns the content to httpd, which then + delivers the HTTP response to the client.
+ +Common reasons include security, high availability, load balancing, + and centralized authentication. The backend infrastructure should be isolated from the external + network; as far as the client is concerned, the reverse proxy + is the sole source of all content.
A typical implementation is below:
@@ -79,28 +72,28 @@ to a single backend: -
ProxyPass "/" "http://www.example.com/"- +ProxyPass "/" "http://www.example.com/"+- To ensure that and
-Location:headers generated from + To ensure thatLocation:headers generated from the backend are modified to point to the reverse proxy, instead of back to itself, theProxyPassReversedirective is most often required:ProxyPass "/" "http://www.example.com/" +ProxyPass "/" "http://www.example.com/" ProxyPassReverse "/" "http://www.example.com/"- +Only specific URIs can be proxied, as shown in this example:
-ProxyPass "/images" "http://www.example.com/" +ProxyPass "/images" "http://www.example.com/" ProxyPassReverse "/images" "http://www.example.com/"- +In the above, any requests which start with the
/images- path with be proxied to the specified backend, otherwise it will be handled + path will be proxied to the specified backend, otherwise it will be handled locally.- As useful as the above is, it still has the deficiencies that should - the (single) backend node go down, or become heavily loaded, that proxying - those requests provides no real advantage. What is needed is the ability - to define a set or group of backend servers which can handle such - requests and for the reverse proxy to load balance and failover among - them. This group is sometimes called a cluster but Apache httpd's - term is a balancer. One defines a balancer by leveraging the + The single-backend setup above has an obvious weakness: if that + node goes down or becomes overloaded, the proxied content is unavailable. + What you need is a group of backend servers that the reverse proxy can + load-balance and failover among. This group is sometimes called a cluster; Apache httpd's + term is a balancer. You define a balancer using the
-<Proxy>and -BalancerMemberdirectives as - shown: +BalancerMemberdirectives:<Proxy balancer://myset> - BalancerMember http://www2.example.com:8080 - BalancerMember http://www3.example.com:8080 - ProxySet lbmethod=bytraffic +<Proxy balancer://myset> +BalancerMember http://www2.example.com:8080 +BalancerMember http://www3.example.com:8080 +ProxySet lbmethod=bytraffic </Proxy> ProxyPass "/images/" "balancer://myset/" ProxyPassReverse "/images/" "balancer://myset/"- +The
balancer://scheme is what tells httpd that we are creating @@ -153,23 +143,21 @@- You can adjust numerous configuration details of the balancers - and the workers via the various parameters defined in -
-ProxyPass. For example, - assuming we would wanthttp://www3.example.com:8080to - handle 3x the traffic with a timeout of 1 second, we would adjust the - configuration as follows: + You can tune balancers and workers through + parameters onProxyPass. + For example, to havehttp://www3.example.com:8080+ handle 3× the traffic with a 1-second timeout:<Proxy balancer://myset> - BalancerMember http://www2.example.com:8080 - BalancerMember http://www3.example.com:8080 loadfactor=3 timeout=1 - ProxySet lbmethod=bytraffic +<Proxy balancer://myset> +BalancerMember http://www2.example.com:8080 +BalancerMember http://www3.example.com:8080 loadfactor=3 timeout=1 +ProxySet lbmethod=bytraffic </Proxy> ProxyPass "/images" "balancer://myset/" ProxyPassReverse "/images" "balancer://myset/"- +@@ -177,9 +165,9 @@@@ -236,22 +222,19 @@- You can also fine-tune various failover scenarios, detailing which workers - and even which balancers should be accessed in such cases. For example, the - below setup implements three failover cases: + You can fine-tune failover scenarios, specifying which workers and + balancers handle traffic when others fail. The setup below + implements three failover cases:
- @@ -202,32 +190,30 @@
- Thus, it is possible to have one or more hot spares and hot standbys for - each load balancer set. + You can have one or more hot spares and hot standbys for each + load balancer set.
-<Proxy balancer://myset> - BalancerMember http://www2.example.com:8080 - BalancerMember http://www3.example.com:8080 loadfactor=3 timeout=1 - BalancerMember http://spare1.example.com:8080 status=+R - BalancerMember http://spare2.example.com:8080 status=+R - BalancerMember http://hstandby.example.com:8080 status=+H - BalancerMember http://bkup1.example.com:8080 lbset=1 - BalancerMember http://bkup2.example.com:8080 lbset=1 - ProxySet lbmethod=byrequests +<Proxy balancer://myset> +BalancerMember http://www2.example.com:8080 +BalancerMember http://www3.example.com:8080 loadfactor=3 timeout=1 +BalancerMember http://spare1.example.com:8080 status=+R +BalancerMember http://spare2.example.com:8080 status=+R +BalancerMember http://hstandby.example.com:8080 status=+H +BalancerMember http://bkup1.example.com:8080 lbset=1 +BalancerMember http://bkup2.example.com:8080 lbset=1 +ProxySet lbmethod=byrequests </Proxy> ProxyPass "/images/" "balancer://myset/" ProxyPassReverse "/images/" "balancer://myset/"- +- For failover, hot spares are used as replacements for unusable workers in - the same load balancer set. A worker is considered unusable if it is - draining, stopped, or otherwise in an error/failed state. Hot standbys are - used if all workers and spares in the load balancer set are - unavailable. Load balancer sets (with their respective hot spares and - standbys) are always tried in order from lowest to highest. + Hot spares replace unusable workers (draining, stopped, or in an + error state) within the same load balancer set. Hot standbys + activate only when all workers and spares in a set are unavailable. + Sets are tried in order from lowest to highest.
- One of the most unique and useful features of Apache httpd's reverse proxy is - the embedded balancer-manager application. Similar to -
-mod_status, balancer-manager displays - the current working configuration and status of the enabled - balancers and workers currently in use. However, not only does it - display these parameters, it also allows for dynamic, runtime, on-the-fly - reconfiguration of almost all of them, including adding new BalancerMembers - (workers) to an existing balancer. To enable these capability, the following - needs to be added to your configuration: + Apache httpd includes an embedded balancer-manager + application. Likemod_status, it displays the + current configuration and status of your balancers and workers. + It also lets you reconfigure them at runtime—including adding + new BalancerMembers to an existing balancer. To enable + it, add the following to your configuration:<Location "/balancer-manager"> - SetHandler balancer-manager - Require host localhost +<Location "/balancer-manager"> +SetHandler balancer-manager +Require host localhost </Location>- +Warning
Do not enable the balancer-manager until you have secured your server. In @@ -260,16 +243,16 @@
- When the reverse proxy server is accessed at that url - (eg:
http://rproxy.example.com/balancer-manager/, you will see a - page similar to the below: + When you access that URL + (e.g.http://rproxy.example.com/balancer-manager/), you + will see a page like this:
- This form allows the devops admin to adjust various parameters, take - workers offline, change load balancing methods and add new works. For - example, clicking on the balancer itself, you will get the following page: + From here you can adjust parameters, take workers offline, change + load balancing methods, and add new workers. Clicking on the + balancer itself shows:
@@ -279,8 +262,8 @@
- To have these changes persist restarts of the reverse proxy, ensure that -
@@ -289,12 +272,11 @@BalancerPersistis enabled. + To persist these changes across restarts, enable +BalancerPersist.- Before httpd proxies a request to a worker, it can "test" if that worker - is available via setting the
diff -Nru apache2-2.4.68/docs/manual/howto/reverse_proxy.html.fr.utf8 apache2-2.4.69/docs/manual/howto/reverse_proxy.html.fr.utf8 --- apache2-2.4.68/docs/manual/howto/reverse_proxy.html.fr.utf8 2026-05-31 13:57:20.000000000 +0000 +++ apache2-2.4.69/docs/manual/howto/reverse_proxy.html.fr.utf8 2026-07-01 15:26:27.000000000 +0000 @@ -27,27 +27,19 @@ fr -pingparameter for that worker using -ProxyPass. Oftentimes it is - more useful to check the health of the workers out of band, in a - dynamic fashion. This is achieved in Apache httpd by the -mod_proxy_hcheckmodule. + Before proxying a request, httpd can test whether a worker is + available using thepingparameter in +ProxyPass. Often it is + more useful to check worker health out of band. +mod_proxy_hcheckprovides this capability.En plus de ses fonctions de serveur web "basique", à savoir fournir du - contenu statique et dynamique à l'utilisateur, Apache httpd (comme la - plupart des autres serveurs web) peut aussi assurer les fonctions de serveur - mandataire inverse, connu aussi sous le nom de serveur "passerelle".
- -Dans un tel scénario, httpd ne génère et n'héberge pas lui-même les - données, le contenu étant en général obtenu à partir d'un ou plusieurs serveurs - d'arrière-plan qui n'ont normalement aucune connexion directe avec le réseau - externe. Lorsque httpd reçoit une requête en provenance d'un client, la - requête proprement dite est mandatée vers un de ces serveurs - d'arrière-plan qui traite la requête, génère le contenu et l'envoie à httpd, - ce dernier générant la véritable réponse HTTP à destination du client.
- -De nombreuses raisons peuvent vous motiver à utiliser cette - fonctionnalité, mais elles sont souvent du domaine de la sécurité, de - la haute disponibilité, de la répartition de charge et de - l'authentification/autorisation centralisée. Il est alors indispensable que - l'organisation, la conception et l'architecture de l'infrastructure - d'arrière-plan (les serveurs qui traitent au sens propre les requêtes) soient - isolées et protégées de l'extérieur ; vu du client, le serveur mandataire - inverse est le seul serveur accessible pouvant lui fournir du +
En plus de servir directement du contenu statique et dynamique, Apache + httpd peut remplir les fonctions d’un serveur mandataire inverse (parfois + appelé passerelle).
+ +Dans ce mode, httpd ne génère pas le contenu lui-même. Il redirige chaque + requête client vers un ou plusieurs serveurs dorsaux qui n’ont pas d’accès + direct au réseau externe. Le serveur dorsal traite la requête et renvoie le + contenu à httpd qui, à son tour, envoie la réponse HTTP au client.
+ +Les buts courants de ce dispositif comprennent la sécurité, la haute + disponibilité, la répartition de charge et l’authentification centralisée. + L’infrastructure dorsale doit être isolée du réseau externe ; du point de + vue du client, le mandataire inverse est la seule source de tout contenu.
Voici un exemple typique d'implémentation de cette fonctionnalité :
@@ -56,12 +48,12 @@@@ -83,26 +75,25 @@ unique : -
Mandataire inverse
- -
Mandatement inverse simple
- -
Clusters et Balancers
- +
Configuration du Balancer et des BalancerMembers
- +
Grappes et répartiteurs de charge
Configuration du répartiteur de charge et de ses membres (workers)
Gestion des indisponibilités (Failover)
Gestion du répartiteur de charge
- + dorsal
Vérification dynamique du bon fonctionnement d'un serveur - d'arrière-plan
Drapeaux d'état d'un membre du groupe de répartition de charge
ProxyPass "/" "http://www.example.com/"- +ProxyPass "/" "http://www.example.com/"+- Pour être sur que cette redirection soit effectuée et que les en-têtes -
-Location:générés par le serveur d'arrière-plan soient - modifiés pour pointer vers le mandataire inverse, et non vers le serveur - d'arrière-plan, la directiveProxyPassReverseest souvent requise : + Pour s’assurer que les en-têtesLocation:générés par le + serveur dorsal soient modifiés pour pointer vers le mandataire inverse, et + non vers le serveur d'arrière-plan, la directiveProxyPassReverseest en général requise :ProxyPass "/" "http://www.example.com/" +- -ProxyPass "/" "http://www.example.com/" ProxyPassReverse "/" "http://www.example.com/"+Seules des URIs spécifiques peuvent être mandatées, comme le montre +
Il est possible de spécifier les URIs qui peuvent être mandatés, comme le montre l'exemple suivant :
-ProxyPass "/images" "http://www.example.com/" +ProxyPass "/images" "http://www.example.com/" ProxyPassReverse "/images" "http://www.example.com/"- +Dans l'exemple précédent, si le chemin d'une requête commence par
/images, elle sera redirigée vers le serveur d'arrière-plan @@ -110,39 +101,38 @@-Clusters et Balancers ¶
+Grappes et répartiteurs de charge ¶
- Utiliser un serveur d'arrière-plan unique n'est cependant pas une solution - idéale car ce dernier peut devenir indisponible ou surchargé, et le - mandatement inverse vers ce serveur ne présente alors plus aucun avantage. - La solution réside dans la définition d'un groupe de serveurs - d'arrière-plan qui vont se partager le traitement des requêtes via un - mécanisme de répartition de charge et de gestion des indisponibilités pris - en charge par le mandataire. Ce groupe de répartition est plus connu sous le nom de - cluster, mais dans la terminologie d'Apache httpd, on utilise - plutôt le terme de balancer. Un balancer se définit en - utilisant les directives
- -<Proxy>etBalancerMembercomme suit : -<Proxy balancer://myset> - BalancerMember http://www2.example.com:8080 - BalancerMember http://www3.example.com:8080 - ProxySet lbmethod=bytraffic + La configuration à un seul serveur dorsal ci-avant comporte un défaut + évident : si ce serveur dorsal est éteint ou surchargé, le contenu + mandaté ne sera pas disponible. Ce dont on a besoin ici est un groupe de + serveurs dorsaux parmi lesquels le serveur mandataire pourra basculer et + répartir la charge. Ce groupe est parfois appelé grappe + (cluster) ; Apache httpd le nomme répartiteur de charge + (balancer). Un répartiteur de charge se définit en utilisant les + directives<Proxy>+ etBalancerMember: + + +<Proxy balancer://myset> +BalancerMember http://www2.example.com:8080 +BalancerMember http://www3.example.com:8080 +ProxySet lbmethod=bytraffic </Proxy> ProxyPass "/images/" "balancer://myset/" ProxyPassReverse "/images/" "balancer://myset/"- +Le protocole
@@ -156,25 +146,25 @@balancer://indique à httpd que l'on souhaite - créer un balancer nommé myset. Ce balancer comporte deux serveurs + créer un répartiteur de charge nommé myset. Ce répartiteur comporte deux serveurs d'arrière-plan référencés dans la terminologie httpd sous le nom de BalancerMembers. Avec cet exemple, toute requête dont le chemin commence par/imagessera mandatée vers un des deux - serveurs d'arrière-plan. La directiveProxySetdéfinit ici pour le balancer + serveurs d'arrière-plan. La directiveProxySetdéfinit ici pour le répartiteur myset un algorithme de répartition de charge basé sur le trafic entrées/sorties.-Configuration du Balancer et des BalancerMembers ¶
+Configuration du répartiteur de charge et de ses membres (workers) ¶
- Vous pouvez configurer de manière détaillée les balancers et - workers via les nombreux paramètres de la directive
-ProxyPass. Par exemple, si vous souhaitez - quehttp://www3.example.com:8080traite avec un facteur 3 le - trafic avec un timeout d'une seconde, utilisez la configuration suivante : + Les répartiteurs de charge et leurs membres sont configurés à l’aide de + paramètres de la directiveProxyPass. Par exemple, pour que +http://www3.example.com:8080gère le trafic avec un facteur 3 + et un délai d’une seconde :<Proxy balancer://myset> - BalancerMember http://www2.example.com:8080 - BalancerMember http://www3.example.com:8080 loadfactor=3 timeout=1 - ProxySet lbmethod=bytraffic +<Proxy balancer://myset> +BalancerMember http://www2.example.com:8080 +BalancerMember http://www3.example.com:8080 loadfactor=3 timeout=1 +ProxySet lbmethod=bytraffic </Proxy> ProxyPass "/images" "balancer://myset/" ProxyPassReverse "/images" "balancer://myset/"- +@@ -182,10 +172,10 @@@@ -245,21 +234,19 @@- Vous pouvez aussi définir finement des scénarios pour les cas - d'indisponibilité d'un ou plusieurs serveurs d'arrière-plan en spécifiant - quels serveurs doivent alors prendre le relai. Dans l'exemple suivant, - trois scénarios sont envisagés : + Vous pouvez définir finement des scénarios pour les cas d'indisponibilité + d'un ou plusieurs serveurs dorsaux en spécifiant quels répartiteurs et + leurs membres doivent alors prendre le relai. Dans l'exemple suivant, + trois scénarios sont envisagés :
- @@ -211,32 +201,31 @@
Il est ainsi possible de définir un ou plusieurs serveurs de remplacement ou de standby pour chaque jeu de serveurs du répartiteur de charge. -
+ -<Proxy balancer://myset> - BalancerMember http://www2.example.com:8080 - BalancerMember http://www3.example.com:8080 loadfactor=3 timeout=1 - BalancerMember http://spare1.example.com:8080 status=+R - BalancerMember http://spare2.example.com:8080 status=+R - BalancerMember http://hstandby.example.com:8080 status=+H - BalancerMember http://bkup1.example.com:8080 lbset=1 - BalancerMember http://bkup2.example.com:8080 lbset=1 - ProxySet lbmethod=byrequests +<Proxy balancer://myset> +BalancerMember http://www2.example.com:8080 +BalancerMember http://www3.example.com:8080 loadfactor=3 timeout=1 +BalancerMember http://spare1.example.com:8080 status=+R +BalancerMember http://spare2.example.com:8080 status=+R +BalancerMember http://hstandby.example.com:8080 status=+H +BalancerMember http://bkup1.example.com:8080 lbset=1 +BalancerMember http://bkup2.example.com:8080 lbset=1 +ProxySet lbmethod=byrequests </Proxy> ProxyPass "/images/" "balancer://myset/" ProxyPassReverse "/images/" "balancer://myset/"- +Les serveurs de remplacement à chaud remplacent les serveurs indisponibles - du même jeu de serveurs du répartiteur de charge. Un serveur est - considéré comme indisponible s'il est en maintenance, arrêté ou en erreur. - Les serveurs de standby à chaud sont utilisés si tous les serveurs et - serveurs de remplacement du jeu de serveurs du répartiteur de charge sont - indisponibles. Les jeux de serveurs du répartiteur de charge (avec leurs - serveurs de standby et de remplacement à chaud respectifs) sont toujours - sollicités dans l'ordre du plus bas lbset vers le plus haut. + (en phase de vidage, arrêtés ou en état d’erreur) du même jeu de serveurs + du répartiteur de charge. Les serveurs de standby à chaud ne sont activés + que si tous les serveurs et serveurs de remplacement du jeu de serveurs du + répartiteur de charge sont indisponibles. Les jeux de serveurs du + répartiteur de charge sont sollicités dans l'ordre du plus bas lbset vers + le plus haut.
- L'application balancer-manager fournie avec le mandataire inverse - d'Apache httpd en est un des outils les plus utiles. Comme -
-mod_status, balancer-manager affiche la - configuration et l'activité actuelles des balancers actifs. L'affichage de - ces informations n'est cependant pas sa seule fonction ; il permet aussi de - modifier la plupart d'entre elles et même d'ajouter des membres au groupe - de répartition de charge en temps réel. Pour activer ces fonctionnalités, - vous devez ajouter les lignes suivantes à votre fichier de configuration : + Apache httpd comporte un gestionnaire de répartiteur de charge + (balancer-manager) intégré. Commemod_status, il affiche + la configuration et l’état actuels de vos répartiteurs de charge et de + leurs membres. Il vous permet aussi de les reconfigurer à l’exécution + — par exemple pour ajouter de nouveaux membres à un répartiteur existant. + Pour l’activer, ajoutez les lignes suivantes à votre configuration :<Location "/balancer-manager"> - SetHandler balancer-manager - Require host localhost +<Location "/balancer-manager"> +SetHandler balancer-manager +Require host localhost </Location>- +Avertissement
N'activez le balancer-manager que si vous avez déjà sécurisé votre serveur. @@ -274,9 +261,9 @@
- Ce formulaire permet à l'administrateur de modifier certains paramètres, - de désactiver ou d'ajouter certains serveurs d'arrière-plan, et de - modifier les règles de répartition de charge. Par exemple, si on clique + Ce formulaire permet de modifier certains paramètres, + de désactiver ou d'ajouter des serveurs dorsaux, et de + modifier les règles de répartition de charge. Si l’on clique sur le répartiteur, la page suivante s'affiche :
@@ -295,16 +282,15 @@
diff -Nru apache2-2.4.68/docs/manual/howto/ssi.html.en apache2-2.4.69/docs/manual/howto/ssi.html.en --- apache2-2.4.68/docs/manual/howto/ssi.html.en 2026-05-31 13:57:20.000000000 +0000 +++ apache2-2.4.69/docs/manual/howto/ssi.html.en 2026-06-19 14:27:29.000000000 +0000 @@ -30,15 +30,17 @@ ko -Vérification dynamique du bon fonctionnement d'un serveur - d'arrière-plan ¶
+ dorsal ¶- Avant que le mandataire httpd ne fasse appel à un serveur d'arrière-plan, il - peut "tester" si ce dernier est disponible en définissant le - paramètre
pingde ce serveur via la directiveProxyPass. Cependant, il est souvent plus + Avant de mandater une requête, httpd peut "tester" si le serveur + dorsal est disponible en définissant le paramètrepingde ce + serveur via la directiveProxyPass. Cependant, il est souvent plus judicieux de vérifier le bon fonctionnement d'un serveur hors - bande et de manière dynamique via le module -mod_proxy_hcheckd'Apache httpd. + ibande via le modulemod_proxy_hcheck.Server-side includes provide a means to add dynamic content to -existing HTML documents.
+Server Side Includes (SSI) provide a way to add dynamic content to +existing HTML documents without requiring a full application framework. +They are particularly useful for inserting common elements — headers, +footers, navigation, timestamps — into otherwise static pages.
Introduction
What are SSI?
Configuring your server to permit SSI
Basic SSI directives
- -
Additional examples
- +
What else can I config?
Other config options
Executing commands
Advanced SSI techniques
- @@ -48,184 +50,151 @@
Conclusion
Introduction ¶
-
Related Modules Related Directives This article deals with Server Side Includes, usually called - simply SSI. In this article, I'll talk about configuring your - server to permit SSI, and introduce some basic SSI techniques - for adding dynamic content to your existing HTML pages.
- -In the latter part of the article, we'll talk about some of - the somewhat more advanced things that can be done with SSI, - such as conditional statements in your SSI directives.
+SSI lets you drop simple directives into your HTML files that + the server evaluates before sending the page to the client. This + is a lightweight way to keep shared content (like a site-wide + footer or a "last modified" timestamp) in one place, without + needing a template engine or application server.
+ +This document covers configuring httpd to permit SSI, basic + SSI directives for common tasks, and some more advanced + techniques including variables and conditional expressions.
What are SSI? ¶
-SSI (Server Side Includes) are directives that are placed in - HTML pages, and evaluated on the server while the pages are - being served. They let you add dynamically generated content to - an existing HTML page, without having to serve the entire page - via a CGI program, or other dynamic technology.
+SSI directives are HTML comments with a specific syntax that +
-mod_includerecognizes and evaluates before the + page is sent to the client. They look like this:For example, you might place a directive into an existing HTML - page, such as:
- -+
- <!--#echo var="DATE_LOCAL" --> --<!--#echo var="DATE_LOCAL" -->+And, when the page is served, this fragment will be evaluated and replaced with its value:
+When the page is served, this fragment is replaced with its + value:
-
- Tuesday, 15-Jan-2013 19:28:54 EST + Thursday, 18-Jun-2026 14:22:07 EDTThe decision of when to use SSI, and when to have your page - entirely generated by some program, is usually a matter of how - much of the page is static, and how much needs to be - recalculated every time the page is served. SSI is a great way - to add small pieces of information, such as the current time - shown - above. But if a majority of your page is being generated at the time - that it is served, you need to look for some other solution.
+Because the directives are embedded in HTML comments, if SSI + is not enabled, browsers ignore them (though they remain + visible in the page source).
Configuring your server to permit SSI ¶
-To permit SSI on your server, you must have the following - directive either in your
-httpd.conffile, or in a -.htaccessfile:Options +Includes- - -This tells Apache that you want to permit files to be parsed - for SSI directives. Note that most configurations contain - multiple
- -Optionsdirectives - that can override each other. You will probably need to apply the -Optionsto the specific directory where you want SSI - enabled in order to assure that it gets evaluated last.Not just any file is parsed for SSI directives. You have to - tell Apache which files should be parsed. There are two ways to - do this. You can tell Apache to parse any file with a - particular file extension, such as
-.shtml, with - the following directives:AddType text/html .shtml +To enable SSI processing, add the following directive to your +
+ +httpd.conffile or to a.htaccess+ file:+ +Options +Includes+This tells httpd to parse files for SSI directives. Since most + configurations contain multiple
+ +Optionsdirectives that can override each other, apply + this to the specific directory where you want SSI enabled.You also need to tell httpd which files to parse. There are + two common approaches.
+ +The first is to designate a file extension (typically +
+ +.shtml) for SSI-enabled pages:+AddType text/html .shtml AddOutputFilter INCLUDES .shtml+The disadvantage here is that adding SSI to an existing page + requires renaming the file (and updating all links to it) to use + the
-.shtmlextension.One disadvantage to this approach is that if you wanted to - add SSI directives to an existing page, you would have to - change the name of that page, and all links to that page, in - order to give it a
- -.shtmlextension, so that those - directives would be executed.The other method is to use the
-XBitHackdirective:XBitHack on- - --
XBitHack- tells Apache to parse files for SSI - directives if they have the execute bit set. So, to add SSI - directives to an existing page, rather than having to change - the file name, you would just need to make the file executable - usingchmod.+
- chmod +x pagename.html -The second approach uses the
+ +XBitHackdirective:-XBitHack on+A brief comment about what not to do. You'll occasionally - see people recommending that you just tell Apache to parse all -
- -.htmlfiles for SSI, so that you don't have to - mess with.shtmlfile names. These folks have - perhaps not heard aboutXBitHack. The thing to - keep in mind is that, by doing this, you're requiring that - Apache read through every single file that it sends out to - clients, even if they don't contain any SSI directives. This - can slow things down quite a bit, and is not a good idea.Of course, on Windows, there is no such thing as an execute - bit to set, so that limits your options a little.
- -In its default configuration, Apache does not send the last - modified date or content length HTTP headers on SSI pages, - because these values are difficult to calculate for dynamic - content. This can prevent your document from being cached, and - result in slower perceived client performance. There are two - ways to solve this:
++ +
XBitHacktells + httpd to parse any file that has its execute bit set. To enable + SSI on an existing page, make the file executable:+ +chmod +x pagename.html++ ++ Avoid configuring httpd to parse all
.html+ files for SSI directives. This forces the server to read through + every HTML file it serves, even those without any SSI content, + which adds unnecessary overhead. +On Windows, there is no execute bit, so the +
+ +XBitHackapproach is + not available. Use the file-extension method instead.By default, httpd does not send the last-modified date or + content-length headers on SSI pages, since these values are + difficult to calculate for dynamic content. This can prevent + caching and result in slower perceived performance. Two + approaches can help:
-
- Use the
- -XBitHack Fullconfiguration. This - tells Apache to determine the last modified date by looking - only at the date of the originally requested file, ignoring - the modification date of any included files.- Use the directives provided by -
+mod_expiresto set an explicit expiration - time on your files, thereby letting browsers and proxies - know that it is acceptable to cache them.- Use
+ +XBitHack Full, which tells httpd to + determine the last-modified date from the originally requested + file, ignoring the modification dates of included files.- Use
mod_expiresto set an explicit + expiration time, letting browsers and proxies know the content + is safe to cache.@@ -233,242 +202,182 @@Basic SSI directives ¶
-SSI directives have the following syntax:
-+
- <!--#function attribute=value attribute=value ... --> -SSI directives use the following syntax:
+-<!--#function attribute=value attribute=value ... -->+It is formatted like an HTML comment, so if you don't have - SSI correctly enabled, the browser will ignore it, but it will - still be visible in the HTML source. If you have SSI correctly - configured, the directive will be replaced with its - results.
- -The function can be one of a number of things, and we'll talk - some more about most of these in the next installment of this - series. For now, here are some examples of what you can do with - SSI
+If SSI is correctly configured, the directive is replaced with + its output. If not, it remains as an HTML comment — invisible to + the end user but present in the source.
Today's date
-+
- <!--#echo var="DATE_LOCAL" --> --<!--#echo var="DATE_LOCAL" -->+The
- -echofunction just spits out the value of a - variable. There are a number of standard variables, which - include the whole set of environment variables that are - available to CGI programs. Also, you can define your own - variables with thesetfunction.If you don't like the format in which the date gets printed, - you can use the
+configfunction, with a -timefmtattribute, to modify that formatting.The
-echofunction outputs the value of a variable. + Standard variables include the full set of environment variables + available to CGI programs, plus variables you define with +set.+
- <!--#config timefmt="%A %B %d, %Y" -->
- Today is <!--#echo var="DATE_LOCAL" --> -To customize the date format, use the
+ +config+ function with thetimefmtattribute:<!--#config timefmt="%A %B %d, %Y" -->+
+Today is <!--#echo var="DATE_LOCAL" -->Modification date of the file
-+
- This document last modified <!--#flastmod file="index.html" --> --This document last modified <!--#flastmod file="index.html" -->+This function is also subject to
+timefmtformat - configurations.This function is also subject to
timefmt+ configuration.Including the results of a CGI program
-This is one of the more common uses of SSI - to output the - results of a CGI program, such as everybody's favorite, a ``hit - counter.''
+SSI can include the output of a CGI program directly in the + page:
-+
- <!--#include virtual="/cgi-bin/counter.pl" --> -<!--#include virtual="/cgi-bin/counter.pl" -->+Additional examples ¶
-Following are some specific examples of things you can do in - your HTML documents with SSI.
+The following are practical examples of common SSI use + cases.
-When was this document -modified?
+When was this document modified?
-Earlier, we mentioned that you could use SSI to inform the - user when the document was most recently modified. However, the - actual method for doing that was left somewhat in question. The - following code, placed in your HTML document, will put such a - time stamp on your page. Of course, you will have to have SSI - correctly enabled, as discussed above.
-+
- <!--#config timefmt="%A %B %d, %Y" -->
- This file last modified <!--#flastmod file="ssi.shtml" --> -A common use of SSI is to display a "last modified" timestamp + on each page. The following code uses the +
-LAST_MODIFIEDvariable so you can paste the same + snippet into any file without changing the filename:Of course, you will need to replace the -
-ssi.shtmlwith the actual name of the file that - you're referring to. This can be inconvenient if you're just - looking for a generic piece of code that you can paste into any - file, so you probably want to use the -LAST_MODIFIEDvariable instead:+
- <!--#config timefmt="%D" -->
- This file last modified <!--#echo var="LAST_MODIFIED" --> --<!--#config timefmt="%D" -->+
+This file last modified <!--#echo var="LAST_MODIFIED" -->For more details on the
+timefmtformat, go to - your favorite search site and look forstrftime. The - syntax is the same.For details on
timefmtformat strings, see the + documentation forstrftimein your system's C + library reference.Including a standard footer
-If you are managing any site that is more than a few pages, - you may find that making changes to all those pages can be a - real pain, particularly if you are trying to maintain some kind - of standard look across all those pages.
- -Using an include file for a header and/or a footer can - reduce the burden of these updates. You just have to make one - footer file, and then include it into each page with the -
-includeSSI command. Theinclude- function can determine what file to include with either the -fileattribute, or thevirtual- attribute. Thefileattribute is a file path, - relative to the current directory. That means that it - cannot be an absolute file path (starting with /), nor can it - contain ../ as part of that path. Thevirtual- attribute is probably more useful, and should specify a URL - relative to the document being served. It can start with a /, - but must be on the same server as the file being served.+
- <!--#include virtual="/footer.html" --> -On a site with more than a few pages, maintaining a + consistent header or footer across all pages can be tedious. + SSI solves this by letting you keep shared content in a single + file and include it everywhere:
+ +-<!--#include virtual="/footer.html" -->+I'll frequently combine the last two things, putting a -
+LAST_MODIFIEDdirective inside a footer file to be - included. SSI directives can be contained in the included file, - and includes can be nested - that is, the included file can - include another file, and so on.The
+ +includefunction accepts two attributes: +filespecifies a path relative to the current + directory (it cannot be an absolute path or contain +../), whilevirtualspecifies a URL + relative to the document being served (it can start with +/but must be on the same server).SSI directives inside included files are evaluated normally, + and includes can be nested. This means you can put a +
LAST_MODIFIEDtimestamp in your footer file, and + it will be evaluated in the context of each page that includes + it.-+What else can I config? ¶
+Other config options ¶
-In addition to being able to
+configthe time - format, you can alsoconfigtwo other things.In addition to
-timefmt, theconfig+ function supports two other attributes.Usually, when something goes wrong with your SSI directive, - you get the message
+The
errmsgattribute changes the error message + displayed when an SSI directive fails. The default is:-
- [an error occurred while processing this directive] +[an error occurred while processing this directive]If you want to change that message to something else, you - can do so with the
-errmsgattribute to the -configfunction:+
- <!--#config errmsg="[It appears that you don't know how to use SSI]" --> -You can replace it with something more appropriate for your + site:
+-<!--#config errmsg="[Content unavailable]" -->+Hopefully, end users will never see this message, because - you will have resolved all the problems with your SSI - directives before your site goes live. (Right?)
- -And you can
-configthe format in which file - sizes are returned with thesizefmtattribute. You - can specifybytesfor a full count in bytes, or -abbrevfor an abbreviated number in Kb or Mb, as - appropriate.The
+sizefmtattribute controls how file sizes + are formatted:bytesfor a full byte count, or +abbrevfor an abbreviated form in KB or MB.+Executing commands ¶
-Here's something else that you can do with the
-exec- function. You can actually have SSI execute a command using the - shell (/bin/sh, to be precise - or the DOS shell, - if you're on Win32). The following, for example, will give you - a directory listing.- -
- <pre>
- <!--#exec cmd="ls" -->
- </pre> -or, on Windows
-+
- <pre>
- <!--#exec cmd="dir" -->
- </pre> -The
+ +execfunction can run a shell command and + include its output in the page. On Unix-like systems, the + command is executed via/bin/sh; on Windows, via + the command shell.-<pre> +<!--#exec cmd="ls" --> +</pre>+You might notice some strange formatting with this directive - on Windows, because the output from
- -dircontains - the string ``<dir>'' in it, which confuses - browsers.Note that this feature is exceedingly dangerous, as it will - execute whatever code happens to be embedded in the -
-exectag. If you have any situation where users - can edit content on your web pages, such as with a - ``guestbook'', for example, make sure that you have this - feature disabled. You can allow SSI, but not the -execfeature, with theIncludesNOEXEC- argument to theOptionsdirective.++ The
execfeature is a significant security risk. It + executes arbitrary commands with the permissions of the web + server process. If users can edit content on your site, ensure + this feature is disabled by usingIncludesNOEXEC+ instead ofIncludesin theOptionsdirective. +Advanced SSI techniques ¶
-In addition to spitting out content, Apache SSI gives you - the option of setting variables, and using those variables in - comparisons and conditionals.
+Beyond simple content inclusion, SSI supports variables and + conditional expressions, making it possible to generate + different content based on the request context.
Setting variables
-Using the
-setdirective, you can set variables - for later use. We'll need this later in the discussion, so - we'll talk about it here. The syntax of this is as follows:+
- <!--#set var="name" value="Rich" --> -The
-setdirective defines variables for use later + in the page:In addition to merely setting values literally like that, you - can use any other variable, including environment variables or the variables - discussed above (like
+LAST_MODIFIED, for example) to - give values to your variables. You will specify that something is - a variable, rather than a literal string, by using the dollar sign - ($) before the name of the variable.-<!--#set var="name" value="Rich" -->++
<!--#set var="modified" value="$LAST_MODIFIED" --> -Variables can reference other variables (including + environment variables) using the dollar + sign (
-$) prefix:To put a literal dollar sign into the value of your - variable, you need to escape the dollar sign with a - backslash.
-+
- <!--#set var="cost" value="\$100" --> --<!--#set var="modified" value="$LAST_MODIFIED" -->+Finally, if you want to put a variable in the midst of a - longer string, and there's a chance that the name of the - variable will run up against some other characters, and thus be - confused with those characters, you can place the name of the - variable in braces, to remove this confusion. (It's hard to - come up with a really good example of this, but hopefully - you'll get the point.)
-+
- <!--#set var="date" value="${DATE_LOCAL}_${DATE_GMT}" --> -To include a literal dollar sign, escape it with a + backslash:
+-<!--#set var="cost" value="\$100" -->+Conditional expressions
+When a variable name might be ambiguous within a longer + string, use braces to delimit it:
+-<!--#set var="date" value="${DATE_LOCAL}_${DATE_GMT}" -->+Now that we have variables, and are able to set and compare - their values, we can use them to express conditionals. This - lets SSI be a tiny programming language of sorts. -
-mod_includeprovides anif, -elif,else,endif- structure for building conditional statements. This allows you - to effectively generate multiple logical pages out of one - actual page.The structure of this conditional construct is:
-+
- <!--#if expr="test_condition" -->
- <!--#elif expr="test_condition" -->
- <!--#else -->
- <!--#endif --> -Conditional expressions
-A test_condition can be any sort of logical - comparison - either comparing values to one another, or testing - the ``truth'' of a particular value. (A given string is true if - it is nonempty.) For a full list of the comparison operators - available to you, see the
- -mod_include- documentation.For example, if you wish to customize the text on your web page - based on the time of day, you could use the following recipe, placed - in the HTML page:
-+
- Good - <!--#if expr="%{TIME_HOUR} <12" -->
- morning!
- <!--#else -->
- afternoon!
- <!--#endif -->
-+ +
mod_includeprovidesif, +elif,else, andendif+ constructs for building conditional logic. This lets you + generate different output from a single physical page.The structure is:
+ ++ +<!--#if expr="test_condition" -->+
+<!--#elif expr="test_condition" -->
+<!--#else -->
+<!--#endif -->A test_condition can compare values or test whether a + variable is non-empty. See the
+ +mod_include+ documentation for the full list of comparison operators.For example, to display different greetings based on the time + of day:
+ +-Good +<!--#if expr="%{TIME_HOUR} <12" -->+
+morning!
+<!--#else -->
+afternoon!
+<!--#endif -->
+Any other variable (either ones that you define, or normal - environment variables) can be used in conditional statements. - See Expressions in Apache HTTP Server for - more information on the expression evaluation engine.
- -With Apache's ability to set environment variables with the -
+SetEnvIfdirectives, and other related directives, - this functionality can let you do a wide variety of dynamic content - on the server side without resorting a full web application.Any variable — user-defined or from the environment — can be + used in conditional expressions. See + Expressions in Apache HTTP Server for + full details on the expression evaluation engine.
+ +Combined with httpd's ability to set environment variables + using
SetEnvIfand + related directives, conditional SSI can handle a wide variety of + dynamic content scenarios without a full application + framework.Conclusion ¶
-SSI is certainly not a replacement for CGI, or other - technologies used for generating dynamic web pages. But it is a - great way to add small amounts of dynamic content to pages, - without doing a lot of extra work.
+For sites that are mostly static but need a few dynamic + touches, SSI avoids the overhead of setting up a full + application stack. It requires only
mod_include+ and a few lines of configuration to get started.+Available Languages: en | diff -Nru apache2-2.4.68/docs/manual/howto/ssi.html.es apache2-2.4.69/docs/manual/howto/ssi.html.es --- apache2-2.4.68/docs/manual/howto/ssi.html.es 2026-05-31 13:57:20.000000000 +0000 +++ apache2-2.4.69/docs/manual/howto/ssi.html.es 2026-06-19 14:27:29.000000000 +0000 @@ -31,6 +31,10 @@ ja | ko
Esta traducción podría estar + obsoleta. Consulte la versión en inglés de la + documentación para comprobar si se han producido cambios + recientemente.Los Server Side Includes (Inclusiones en la parte Servidor) facilitan un método para añadir contenido dinámico a documentos HTML existentes.
diff -Nru apache2-2.4.68/docs/manual/howto/ssi.html.fr.utf8 apache2-2.4.69/docs/manual/howto/ssi.html.fr.utf8 --- apache2-2.4.68/docs/manual/howto/ssi.html.fr.utf8 2026-05-31 13:57:20.000000000 +0000 +++ apache2-2.4.69/docs/manual/howto/ssi.html.fr.utf8 2026-06-29 16:23:26.000000000 +0000 @@ -33,14 +33,17 @@Les SSI permettent d'ajouter du contenu dynamique à des documents -HTML préexistants.
+HTML préexistants sans nécessiter de cadriciel complet d’application. Ils +s’avèrent particulièrement utiles pour insérer des éléments courants — en-têtes, +pieds de page, navigation, horodatages — dans des pages qui, sans cela, seraient +statiques.
Introduction
Qu'est-ce que SSI ?
Configurer votre serveur pour permettre les SSI
Directives SSI de base
- -
Exemples additionnels
- +
Que puis-je configurer d'autre ?
Autres options de configuration
Exécution de commandes
Techniques SSI avancées
- @@ -50,180 +53,146 @@
Conclusion
Introduction ¶
-
Modules Apparentés Directives Apparentées Cet article traite des Inclusions Côté Serveur (Server Side - Includes), plus communément appelés SSI. Vous trouverez ici la - manière de configurer votre serveur pour permettre les SSI, ainsi - qu'une introduction à quelques techniques SSI de base permettant - d'ajouter du contenu dynamique à vos pages HTML préexistantes.
- -La dernière partie de cet article sera consacrée aux - configurations SSI plus avancées, telles que les expressions - conditionnelles dans les directives SSI.
- +Les SSI permettent d’insérer de simples directives dans les fichiers + HTML, que le serveur évaluera avant d’envoyer la page au client. Il s’agit + d’une manière simple de stocker du contenu partagé (comme un pied de page + global au site ou un horodatage de dernière modification) en un seul + endroit, sans nécessiter de moteur de modèle ou de serveur d’applications.
+ +Ce document décrit la manière de configurer httpd pour autoriser les + SSI, les directives SSI basiques pour les tâches courantes, ainsi que + quelques techniques plus avancées comme l’inclusion de variable et les + expressions conditionnelles.
+Qu'est-ce que SSI ? ¶
-SSI (Server Side Includes) est constitué de directives placées dans - des pages HTML, et évaluées par le serveur au moment où les pages - sont servies. Elles vous permettent d'ajouter du contenu généré - dynamiquement à une page HTML préexistante, sans avoir à servir la - page entière via un programme CGI, ou toute autre technologie de - contenu dynamique.
- -Par exemple, vous pouvez insérer la directive suivante dans une - page HTML existante :
- -+
- <!--#echo var="DATE_LOCAL" --> -Les directives SSI sont des commentaires HTML avec une syntaxe spécifique + que le module
-mod_includereconnaît et évalue avant que la + page ne soit envoyée au client. Elle sont de la forme suivante :Ainsi, lorsque la page sera servie, la directive sera évaluée et - remplacée par sa valeur :
++<!--#echo var="DATE_LOCAL" -->+Lorsque la page est servie, ce fragment est remplacé par sa valeur :
+-
- Tuesday, 15-Jan-2013 19:28:54 EST + Thursday, 18-Jun-2026 14:22:07 EDTLe choix entre l'utilisation des SSI et la génération entière de - la page par un programme quelconque, est en général dicté par la - proportion de contenu statique et de contenu devant être généré - chaque fois que la page est servie. SSI est idéal pour ajouter de - petites quantités d'information, comme l'heure courante dans - l'exemple précédent. Mais si la - plus grande partie de votre page est générée au moment où elle est - servie, vous devez vous tourner vers une autre solution.
+Les directives étant intégrées dans des commentaires HTML, les + navigateurs les ignoreront si les SSI ne sont pas activées (bien qu’elles + demeurent visibles dans le code source de la page).
Configurer votre serveur pour permettre les SSI ¶
-Pour permettre l'utilisation des SSI sur votre serveur, vous - devez ajouter la directive suivante dans votre fichier -
-httpd.conf, ou dans un fichier.htaccess- :Options +Includes- - -Cette directive indique à Apache que vous désirez permettre la - recherche de directives SSI lors de l'interprétation des fichiers. - Notez cependant que la plupart des configurations contiennent de - nombreuses directives
- -Options- qui peuvent s'écraser les unes les autres. Vous devrez probablement - appliquer ces directivesOptionsau répertoire - spécifique pour lequel vous voulez activer les SSI, afin d'être sûr - qu'elles y seront bien activées.Tout fichier ne fera cependant pas l'objet de recherche de - directives SSI. Vous devez indiquer à Apache quels fichiers seront - concernés. Vous pouvez y parvenir en indiquant une extension, comme -
-.shtml, à l'aide des directives suivantes :AddType text/html .shtml +Pour activer le traitement des SSI, ajoutez la directive suivante à votre + fichier
+ +httpd.confou à un fichier.htaccess:+ +Options +Includes+Si cette option est définie, httpd va analyser les fichiers en y + recherchant des directives SSI. Comme la plupart des configurations + contiennent plusieurs directives
+ +Optionsqui peuvent s’outrepasser les unes les autres, + appliquez la directive d’activation au répertoire spécifique pour lequel + vous voulez activer les SSI.Vous devez aussi indiquer à httpd les fichiers qu’il doit analyser. Pour + ce faire, il existe deux approches courantes.
+ +La première consiste à indiquer une extension de nom de fichier (en + général
+ +.shtml) pour les pages pour lesquelles les SSI sont + activées :+AddType text/html .shtml AddOutputFilter INCLUDES .shtml+Cette approche a pour désavantage de nécessiter, pour ajouter des SSI à + une page existante, de renommer le fichier (et de mettre à jour tous les + liens vers ce dernier) pour utiliser l’extension
-.shtml.Un des désavantages de cette approche réside dans le fait que si - vous voulez ajouter des directives SSI à une page préexistante, vous - devrez changer le nom de cette page, et donc tout lien qui la - contient, de façon à ce qu'elle possède l'extension -
- -.shtml, condition nécessaire pour que les directives - SSI qu'elle contient soient traitées.Une autre méthode consiste à utiliser la directive
-XBitHack:XBitHack on- - -La directive
-XBitHack- indique à Apache qu'il doit rechercher des directivves SSI dans les - fichiers si leur bit d'exécution est positionné. Il n'est ainsi plus - nécessaire de changer le nom du fichier pour ajouter des directives - SSI à une page préexistante ; vous devez simplement attribuer les - droits d'exécution au fichier à l'aide dechmod.+
- chmod +x pagename.html -La seconde approche consiste à utiliser la directive
-XBitHack:Un bref commentaire sur ce qu'il ne faut pas faire. Certaines - personnes peuvent vous conseiller de tout simplement indiquer à - Apache de rechercher des directives SSI dans tous les fichiers -
- -.html, ce qui vous évite d'avoir à gérer les noms de - fichiers avec extension.shtml. Ils n'ont probablement - pas entendu parler de la directiveXBitHack. En effet, vous devez - garder à l'esprit qu'en faisant ceci, Apache va devoir rechercher - des directives SSI dans chaque fichier qu'il sert, même s'il n'en - contient aucune. Ce n'est donc pas une bonne idée car les - performances peuvent en être sensiblement affectées.Bien entendu, sous Windows, il n'y a pas de bit d'exécution à - positionner, ce qui limite un peu vos choix.
- -Dans sa configuration par défaut, Apache n'envoie pas la date de - dernière modification ou les en-têtes HTTP relatifs à la taille des - contenus dans les pages SSI, car ses valeurs sont difficiles à - calculer pour les contenus dynamiques. Ceci peut induire une - impression de diminution des performances côté client, en empêchant - la mise en cache de votre document. Il existe deux méthodes pour - résoudre ce problème :
++ +XBitHack on+La directive
+ +XBitHackindique + à httpd qu’il doit analyser tout fichier dont le bit d’exécution est + positionné. Ainsi, pour activer les SSI pour une page existante, il suffit + de rendre le fichier exécutable :+ +chmod +x pagename.html++ ++ Évitez de configurer httpd pour analyser tous les fichiers +
.htmlpour y trouver des directives SSI. Cela force en effet le + serveur à parcourir tous les fichiers HTML qu’il sert, même ceux qui n’ont + pas de contenu SSI, ce qui ajoute une surcharge de travail inutile. +Sous Windows, il n’y a pas de bit d’exécution ; l’approche avec la + directive
+ +XBitHackn’est donc + pas valable dans ce cas. Vous devrez alors utiliser l’approche par extension + de nom de fichier.Par défaut, httpd n’envoie pas la date de dernière modification ou les + en-têtes content-length sur les pages SSI, car ces valeurs sont difficiles à + calculer pour un contenu dynamique. Cela peut empêcher la mise en cache et + induire un ressenti de performances plus lentes. Deux approches peuvent + aider :
-
- Utilisez la configuration
- -XBitHack Full. Elle - indique à Apache de déterminer la date de dernière modification en - ne regardant que la date du fichier à l'origine de la requête, - tout en ignorant la date de modification de tout fichier inclus.- Utilisez les directives fournies par le module -
+mod_expirespour définir de manière explicite la - date d'expiration de vos fichiers, laissant par la-même - aux navigateurs et aux mandataires le soin de déterminer s'il est - opportun ou non de les mettre en cache.- Utilisez la directive
+ +XBitHack Fullqui indique à httpd + qu’il doit déterminer la date de dernière modification à partir du fichier + initialement demandé, tout en ignorant les dates de dernière modification + des fichiers inclus.- Utilisez le module
+mod_expirespour définir un moment + d’expiration explicite, indiquant ainsi aux navigateurs et aux mandataires + que le contenu peut être mis en cache.@@ -245,245 +212,180 @@Directives SSI de base ¶
-Les directives SSI adoptent la syntaxe suivante :
-+
- <!--#fonction attribut=valeur attribut=valeur ... --> -Les directives SSI utilisent la syntaxe suivante :
+-<!--#function attribute=value attribute=value ... -->+Le format d'une directive SSI étant similaire à celui d'un - commentaire HTML, si vous n'avez pas activé correctement SSI, le - navigateur l'ignorera, mais elle sera encore visible dans le source - HTML. Si SSI est correctement configuré, la directive sera remplacée - par ses résultats.
- -"fonction" peut prendre de nombreuses formes, et nous décrirons - plus précisément la plupart d'entre eux dans la prochaine version de - ce document. Pour le moment, voici quelques exemples de ce que vous - pouvez faire avec SSI.
+Si les SSI sont correctement configurées, la directive sera remplacée par + sa sortie. Dans le cas contraire, elle demeurera en tant que commentaire + HTML — invisible à l’utilisateur final, mais présente dans le code source de + la page.
La date courante
-+
- <!--#echo var="DATE_LOCAL" --> --<!--#echo var="DATE_LOCAL" -->+La fonction
- -echopermet d'afficher la valeur d'une - variable. Il existe un grand nombre de variables standards, y - compris l'ensemble des variables d'environnement disponibles pour - les programmes CGI. De plus, vous pouvez définir vos propres - variables à l'aide de la fonctionset.Si vous n'aimez pas le format sous lequel la date s'affiche, vous - pouvez utiliser la fonction
+configavec un attribut -timefmt, pour le modifier.La fonction
-echoa pour sortie la valeur d’une variable. Les + variables standard incluent le jeu complet de variables d’environnement + disponibles pour les programmes CGI, ainsi que les variables que vous pouvez + définir avecset.+
- <!--#config timefmt="%A %B %d, %Y" -->
- Today is <!--#echo var="DATE_LOCAL" --> -Pour personnaliser le format de la date, utilisez la fonction +
+ +configavec l’attributtimefmt:<!--#config timefmt="%A %B %d, %Y" -->+
+Today is <!--#echo var="DATE_LOCAL" -->Date de modification du fichier
-+
- Dernière modification du document <!--#flastmod file="index.html" --> -Dernière modification du document <!--#flastmod file="index.html" -->+Le format peut là aussi être modifié à l'aide de l'attribut
@@ -231,13 +200,11 @@timefmt.Inclusion des résultats d'un programme CGI
-C'est le cas le plus courant d'utilisation des SSI - afficher les - résultats d'un programme CGI, comme l'universellement adoré - "compteur d'accès".
+Les SSI permettent d’inclure directement la sortie d’un programme CGI + dans la page :
-+
- <!--#include virtual="/cgi-bin/counter.pl" --> -<!--#include virtual="/cgi-bin/counter.pl" -->+Exemples additionnels ¶
-Vous trouverez dans ce qui suit quelques exemples spécifiques de - ce que vous pouvez faire de vos documents HTML avec SSI.
+Vous trouverez dans les exemples pratiques suivants des cas d’utilisation + courants des SSI.
Quand ce document a-t-il été modifié ?
-Nous avons mentionné plus haut que vous pouviez utiliser SSI pour - informer l'utilisateur de la date de dernière modification du - document. Cependant, la méthode pour y parvenir n'a pas été vraiment - abordée. Placé dans votre document HTML, le code suivant va insérer - un repère de temps dans votre page. Bien entendu, SSI devra avoir - été correctement activé, comme décrit plus haut.
-+
- <!--#config timefmt="%A %B %d, %Y" -->
- Dernière modification du fichier <!--#flastmod file="ssi.shtml" --> -Une des utilisations courantes des SSI est l’affichage d’un horodatage + « date de dernière modification » sur chaque page. Le code suivant utilise + la variable
-LAST_MODIFIED; vous pouvez donc coller le même + extrait dans tout fichier sans modifier son nom :Bien entendu, vous devez remplacer
-ssi.shtmlpar le - nom du fichier auquel vous faites référence. Ceci ne conviendra pas - si vous recherchez un morceau de code générique que vous pourrez - insérer dans tout fichier ; dans ce cas, il est préférable - d'utiliser la variableLAST_MODIFIED:+
- <!--#config timefmt="%D" -->
- This file last modified <!--#echo var="LAST_MODIFIED" --> --<!--#config timefmt="%D" -->+
+Date de dernière modification de ce fichier <!--#echo var="LAST_MODIFIED" -->Pour plus de détails sur le format
+timefmt, tapez -strftimedans votre moteur de recherche préferé. La - syntaxe est identique.Pour des détails à propos des chaînes de formatage de +
timefmt, voir la documentation destrftimedans le + manuel de référence de la bibliothèque C de votre système.Inclusion d'un pied de page standard
-Si le site que vous gérez comporte plus que quelques pages, vous - allez vite vous apercevoir qu'effectuer des modifications sur toutes - ces pages peut devenir très contraignant, en particulier si vous - voulez qu'elles conservent un aspect homogène.
- -Inclure un fichier pour un en-tête et/ou un pied de page peut - simplifier cette corvée de mises à jour. Il vous suffit de - confectionner un fichier de pied de page, et de l'inclure dans - chaque page à l'aide de l'élément SSI
-include. Pour - définir le fichier à inclure, la fonctionincludepeut - utiliser soit l'attributfile, soit l'attribut -virtual. L'attributfileest un chemin de - fichier relatif au répertoire courant. C'est à dire qu'il - ne peut ni avoir pour valeur un chemin absolu (commençant par /), ni - comporter "../" dans son chemin. L'attributvirtualest - probablement plus commode, et peut spécifier une URL relative au - document servi. Elle peut commencer par un /, mais le fichier inclus - et le fichier servi doivent résider sur le même serveur.+
- <!--#include virtual="/footer.html" --> -Sur un site qui comporte plus que quelques pages, maintenir un + en-tête ou un pied de page cohérent sur toutes les pages peut s’avérer + fastidieux. Les SSI résolvent ce problème en permettant de stocker le + contenu partagé dans un seul fichier et d’inclure ce dernier n’importe + où :
+ ++ +<!--#include virtual="/footer.html" -->+La fonction
+ +includeaccepte deux attributs : +filequi spécifie un chemin relatif au répertoire actuel (il ne + peut pas spécifier un chemin absolu ou contenant../), et +virtualqui spécifie un URL relatif au document servi (et qui + peut commencer par/, mais doit être sur le même serveur).Les directives SSI au sein des fichiers inclus sont évaluées normalement + et les inclusions peuvent être imbriquées. Cela signifie que vous pouvez + placer un horodatage
-LAST_MODIFIEDdans votre fichier de pied + de page, et qu’il sera évalué dans le contexte de chaque page qui l’inclut.Je combinerai souvent ces deux derniers points, en ajoutant une - directive
LAST_MODIFIEDdans un fichier de pied de page - destiné à être inclus. Le fichier inclus peut contenir des - directives SSI, et les inclusions peuvent être imbriquées - à - savoir, le fichier inclus peut inclure un autre fichier, etc...-+Que puis-je configurer d'autre ? ¶
+Autres options de configuration ¶
-En plus du format de date, vous pouvez utiliser l'élément -
+configpour configurer deux autres choses.En plus de
-timefmt, la fonctionconfigaccepte + deux autres attributs.En général, lorsque quelque chose se passe mal avec votre - directive SSI, vous recevez le message :
+L’attribut
errmsgmodifie le message d’erreur affiché + lorsqu’une directive SSI échoue. Le message par défaut est :-
- [an error occurred while processing this directive] +[an error occurred while processing this directive]Pour modifier ce message, vous pouvez utiliser l'attribut -
-errmsgavec la fonctionconfig:+
- <!--#config errmsg="[Il semblerait que vous ne sachiez pas - utiliser les SSI]" --> -Vous pouvez le remplacer par un contenu plus adapté à votre site :
+-<!--#config errmsg="[Content unavailable]" -->+Il est cependant probable que les utilisateurs finaux ne voient - jamais ce message, car vous aurez résolu tous les problèmes issus de - vos directives SSI avant que votre site ne soit mis en production. - (N'est-ce pas ?)
- -Vous pouvez aussi modifier le format sous lequel les tailles de - fichiers sont affichées à l'aide de l'attribut
-sizefmt. - Vous pouvez spécifierbytespour un affichage en - octets, ouabbrevpour un affichage plus concis en Ko - ou Mo, selon le cas.L’attribut
+sizefmtcontrôle la manière dont les tailles de + fichier sont spécifiées :bytespour un décompte en octets ou +abbrevpour une forme abrégée en Ko ou Mo.+Exécution de commandes ¶
-Voici autre chose que vous pouvez faire avec la fonction -
-exec. Vous pouvez vraiment faire exécuter une commande - par SSI en utilisant le shell (/bin/sh, pour être plus - précis - ou le shell DOS, si vous êtes sous Win32). Par exemple, ce - qui suit vous permet d'afficher le contenu d'un répertoire.- -
- <pre>
- <!--#exec cmd="ls" -->
- </pre> -ou, sous Windows
-- -
- <pre>
- <!--#exec cmd="dir" -->
- </pre> -Vous noterez probablement l'étrange formatage provoqué par cette - directive sous Windows, car la sortie de
- -dircontient - la chaîne de caractères "<dir>", ce qui trompe le - navigateur.Notez que cette fonctionnalité est très dangereuse, car elle va - permettre d'exécuter tout code associé à l'élément -
-exec. Si vous êtes dans la situation où les - utilisateurs peuvent éditer le contenu de vos pages web, dans le cas - d'un "livre d'or" par exemple, assurez-vous de désactiver cette - fonctionnalité. Vous pouvez, tout en permettant les SSI, désactiver - la fonctionnalitéexecà l'aide de l'argument -IncludesNOEXECde la directive -Options.La fonction
+ +execpermet d’exécuter une commande du shell et + d’inclure sa sortie dans la page. Sur les systèmes de style Unix, la + commande est exécutée via/bin/sh, et sous Windows via + l’interpréteur de commande.+<pre> +<!--#exec cmd="ls" --> +</pre>+++ La fonctionnalité
execconstitue un risque de sécurité + significatif. En effet, elle exécute des commandes arbitraires avec les + privilèges du processus du serveur web. Si les utilisateurs peuvent éditer + du contenu sur votre site, assurez-vous que cette fonctionnalité soit + désactivée en spécifiantIncludesNOEXECau lieu de +Includesdans la définition de la directiveOptions. +Techniques SSI avancées ¶
-Outre l'affichage de contenu, les SSI d'Apache vous permettent de - définir des variables, et de les utiliser dans des comparaisons et - des conditions.
+Au-delà de la simple inclusion de contenu, les SSI prennent en charge les + variables et les expressions conditionnelles, rendant possible la génération + de contenus différents en fonction du contexte de la requête.
Définition de variables
-Avec l'élément
-set, vous pouvez définir des - variables pour un usage ultérieur. Comme nous en aurons besoin plus - loin, nous allons en parler tout de suite. La syntaxe se présente - comme suit :+
- <!--#set var="name" value="Rich" --> -La directive
-setpermet de définir des variables à utiliser + plus tard dans la page :Pour affecter une valeur à vos variables, en plus de la - définition littérale de l'exemple ci-dessus, vous pouvez utiliser - une autre variable, y compris les variables d'environnement, ou les variables - décrites plus haut (comme
+LAST_MODIFIEDpar exemple). - Pour indiquer qu'il s'agit d'une variable et non d'une chaîne, vous - devez utiliser le symbole dollar ($) devant le nom de la - variable.-<!--#set var="name" value="Rich" -->++
<!--#set var="modified" value="$LAST_MODIFIED" --> -Les variables peuvent référencer d’autres variables (y compris des variables d’environnement) en utilisant le signe dollar + (
-$) comme préfixe :Pour insérer un caractère $ dans la valeur de votre variable, - vous devez l'échapper à l'aide d'un backslash.
-+
- <!--#set var="cost" value="\$100" --> --<!--#set var="modified" value="$LAST_MODIFIED" -->+Enfin, si vous voulez insérer une variable dans une chaîne, et - s'il y a une chance pour que le nom de la variable se confonde avec - le reste de la chaîne, vous pouvez l'entourer d'accolades pour - eviter toute confusion (Il est difficile de trouver un bon exemple - pour illustrer ceci, mais j'espère que vous comprendrez).
-+
- <!--#set var="date" value="${DATE_LOCAL}_${DATE_GMT}" --> -Pour inclure un signe dollar littéral, protégez-le avec une + contre-oblique :
+-<!--#set var="cost" value="\$100" -->+Expressions conditionnelles
+Lorsqu'un nom de variable risque d'être ambigu au sein d'une chaîne plus + longue, utilisez des accolades pour le délimiter :
+-<!--#set var="date" value="${DATE_LOCAL}_${DATE_GMT}" -->+Maintenent que nous avons des variables, et que nous pouvons - définir et comparer leurs valeurs, nous sommes à même de les - utiliser dans des expressions conditionnelles. Ceci confère à SSI le - statut de petit langage de programmation. -
-mod_includefournit une structureif, -elif,else,endifpour la - construction d'expressions conditionnelles, ce qui vous permet de - générer plusieurs pages logiques à partir d'une seule vraie - page.La structure de l'expression conditionnelle est :
-+
- <!--#if expr="condition" -->
- <!--#elif expr="condition" -->
- <!--#else -->
- <!--#endif --> -Expressions conditionnelles
-Une condition peut revêtir la forme de toute comparaison - logique - soit une comparaison de valeurs avec une autre, soit une - vérification de la "vérité" d'une valeur particulière (Une chaîne - donnée est vraie si elle n'est pas vide). Pour une liste exhaustive - des opérateurs de comparaison disponibles, voir la documentation du - module
-mod_include.Par exemple, spour insérer l'heure du jour dans votre page web, - vous pouvez ajouter ces lignes dans la page HTML :
++ +
mod_includefournit les élémentsif, +elif,elseetendifpermettant de + construire une logique conditionnelle. Cette fonctionnalité permet de + générer des sorties différentes à partir d’une seule page physique.La structure est :
+ +-<!--#if expr="test_condition" -->+
+<!--#elif expr="test_condition" -->
+<!--#else -->
+<!--#endif -->- -
- Good - <!--#if expr="%{TIME_HOUR} <12" -->
- morning!
- <!--#else -->
- afternoon!
- <!--#endif -->
-Toute autre variable (que vous avez définie, ou une variable - d'environnement normale) peut être utilisée dans les expressions - conditionnelles. Voir le document Expressions - rationnelles dans le serveur HTTP Apache pour plus de détails à - propos du fonctionnement du moteur d'évaluation des expressions - rationnelles.
- -Associée à la possibilité avec Apache de définir - des variables d'environnement à l'aide de directives -
+SetEnvIf, ainsi que d'autres directives en rapport, - cette fonctionnalité vous permet d'ajouter une grande variété - de contenus dynamiques côté serveur sans avoir à concevoir une - application web de A à Z.Une test_condition peut comparer des valeurs ou vérifier si une + variable n’est pas vide. Voir la documentation de +
+ +mod_includepour la liste complète des opérateurs de + comparaison.Par exemple, pour afficher des salutations différentes en fonction de + l’heure du jour :
+ ++ +Good +<!--#if expr="%{TIME_HOUR} <12" -->+
+morning!
+<!--#else -->
+afternoon!
+<!--#endif -->
+Toute variable — définie par l’utilisateur ou issue de l’environnement + — peut être utilisée dans les expressions conditionnelles. Voir Les expressions dans le Serveur HTTP Apache pour des + détails complets à propos du moteur d’évaluation des expressions.
+ +Combinées avec la capacité de httpd à définir des variables + d’environnement en utilisant
SetEnvIfet les directives apparentées, + les SSI conditionnelles peuvent traiter une grande variété de scénarios de + contenu dynamique sans nécessiter de cadriciel complet d’applications.Conclusion ¶
-SSI ne remplace certainement pas CGI, ou d'autres technologies - utilisées pour la génération de pages web dynamiques. Mais c'est une - bonne méthode pour ajouter des petits contenus dynamiques à vos - pages, sans devoir fournir un gros effort supplémentaire.
+Pour les sites principalement statiques mais nécessitant quelques touches + dynamiques, les SSI évitent la surcharge de travail induite par la + configuration d’une pile complète d’applications. Elles ne requièrent que +
mod_includeet quelques lignes de configuration pour + fonctionner.-Langues Disponibles: en | diff -Nru apache2-2.4.68/docs/manual/images/README.md apache2-2.4.69/docs/manual/images/README.md --- apache2-2.4.68/docs/manual/images/README.md 1970-01-01 00:00:00.000000000 +0000 +++ apache2-2.4.69/docs/manual/images/README.md 2026-06-16 15:24:07.000000000 +0000 @@ -0,0 +1,97 @@ +# SVG Diagram Style Guide + +This documents the style conventions used for flowchart/diagram SVGs +in this directory, so that new diagrams are visually consistent. + +## Fonts + +- **Primary:** Arial, Helvetica, sans-serif +- **Title:** 12px, bold +- **Phase/section labels:** 11px, bold, fill `#444` +- **Body text:** 10px, fill `#333` +- **Edge labels (Yes/No):** 9px, fill `#555` +- **Annotations/italic notes:** 8px, fill `#666`, italic + +## Colors + +| Element | Fill | Stroke | Notes | +|---------|------|--------|-------| +| Process box (action) | `#e8e8e8` | `#333` | `rx:4 ry:4` rounded corners | +| Decision diamond | `#fff8dc` (cornsilk) | `#333` | | +| Terminal (start/done) | `#d4edda` (light green) | `#333` | `rx:12 ry:12` pill shape | +| Redirect / error | `#f8d7da` (light red) | `#333` or `#b33` | `rx:12 ry:12` pill shape | +| Phase box (grouping) | `#fafafa` | `#888` | `rx:8 ry:8`, contains related steps | +| Warning box | `#f8d7da` | `#b33` | `rx:4 ry:4`, stroke-width 1.5 | +| Lines/arrows | — | `#333` | stroke-width 1.2 | +| Dashed lines (loops) | — | `#333` | stroke-dasharray: 5,4 | + +## Arrowhead Marker + +```xml +
+ +``` + +## SVG Boilerplate + +```xml + + +``` + +## Generating PNGs from SVGs + +Use `rsvg-convert` (from `librsvg`): + +```bash +# Install (macOS): +brew install librsvg + +# Install (Fedora/RHEL/CentOS): +dnf install librsvg2-tools + +# Install (Debian/Ubuntu): +apt-get install librsvg2-bin + +# Convert at 1x (matching SVG viewBox dimensions): +rsvg-convert -o rewrite_l_flag_looping.png rewrite_l_flag_looping.svg + +# Or specify explicit dimensions: +rsvg-convert -w 520 -h 720 -o rewrite_l_flag_looping.png rewrite_l_flag_looping.svg +``` + +Existing PNGs in this directory are at 1x scale (matching their SVG +viewBox width/height). Keep PNGs at 1x for consistency with the rest +of the documentation build. + +## General Conventions + +- Diamonds for decisions, rounded rectangles for actions, pill shapes + for start/end terminals. +- Yes/No labels on decision branches (9px, gray). +- Phase boxes group related steps that occur in the same processing context. +- Dashed lines indicate loop-back paths or optional flows. +- Titles centered at the top of the SVG. +- Typical viewBox widths: 440–650px. Heights: 360–750px. Binary files /srv/release.debian.org/tmp/xDpnWyGgcR/apache2-2.4.68/docs/manual/images/rewrite_l_flag_looping.png and /srv/release.debian.org/tmp/IjglZ5i9op/apache2-2.4.69/docs/manual/images/rewrite_l_flag_looping.png differ diff -Nru apache2-2.4.68/docs/manual/images/rewrite_l_flag_looping.svg apache2-2.4.69/docs/manual/images/rewrite_l_flag_looping.svg --- apache2-2.4.68/docs/manual/images/rewrite_l_flag_looping.svg 1970-01-01 00:00:00.000000000 +0000 +++ apache2-2.4.69/docs/manual/images/rewrite_l_flag_looping.svg 2026-06-16 15:10:06.000000000 +0000 @@ -0,0 +1,153 @@ + + Binary files /srv/release.debian.org/tmp/xDpnWyGgcR/apache2-2.4.68/docs/manual/images/rewrite_module_order.png and /srv/release.debian.org/tmp/IjglZ5i9op/apache2-2.4.69/docs/manual/images/rewrite_module_order.png differ diff -Nru apache2-2.4.68/docs/manual/images/rewrite_module_order.svg apache2-2.4.69/docs/manual/images/rewrite_module_order.svg --- apache2-2.4.68/docs/manual/images/rewrite_module_order.svg 1970-01-01 00:00:00.000000000 +0000 +++ apache2-2.4.69/docs/manual/images/rewrite_module_order.svg 2026-06-16 18:16:15.000000000 +0000 @@ -0,0 +1,110 @@ + + Binary files /srv/release.debian.org/tmp/xDpnWyGgcR/apache2-2.4.68/docs/manual/images/rewrite_path_stripping.png and /srv/release.debian.org/tmp/IjglZ5i9op/apache2-2.4.69/docs/manual/images/rewrite_path_stripping.png differ diff -Nru apache2-2.4.68/docs/manual/images/rewrite_path_stripping.svg apache2-2.4.69/docs/manual/images/rewrite_path_stripping.svg --- apache2-2.4.68/docs/manual/images/rewrite_path_stripping.svg 1970-01-01 00:00:00.000000000 +0000 +++ apache2-2.4.69/docs/manual/images/rewrite_path_stripping.svg 2026-06-16 16:34:25.000000000 +0000 @@ -0,0 +1,142 @@ + + Binary files /srv/release.debian.org/tmp/xDpnWyGgcR/apache2-2.4.68/docs/manual/images/rewrite_simplified_overview.png and /srv/release.debian.org/tmp/IjglZ5i9op/apache2-2.4.69/docs/manual/images/rewrite_simplified_overview.png differ diff -Nru apache2-2.4.68/docs/manual/images/rewrite_simplified_overview.svg apache2-2.4.69/docs/manual/images/rewrite_simplified_overview.svg --- apache2-2.4.68/docs/manual/images/rewrite_simplified_overview.svg 1970-01-01 00:00:00.000000000 +0000 +++ apache2-2.4.69/docs/manual/images/rewrite_simplified_overview.svg 2026-06-16 17:32:33.000000000 +0000 @@ -0,0 +1,113 @@ + + diff -Nru apache2-2.4.68/docs/manual/install.html.en apache2-2.4.69/docs/manual/install.html.en --- apache2-2.4.68/docs/manual/install.html.en 2026-05-31 13:57:20.000000000 +0000 +++ apache2-2.4.69/docs/manual/install.html.en 2026-06-11 20:15:48.000000000 +0000 @@ -34,15 +34,16 @@+ This document covers compilation and installation of the Apache HTTP Server - on Unix and Unix-like systems only. For compiling and - installation on Windows, see Using Apache HTTP Server with Microsoft - Windows and Compiling Apache for Microsoft Windows. - For other platforms, see the platform documentation.
- -Apache httpd uses
+libtoolandautoconf- to create a build environment that looks like many other Open Source - projects.The Apache HTTP Server is released as source code. This document + covers building and installing the server from source on Unix and + Unix-like systems. For Windows, see Using Apache HTTP Server with Microsoft + Windows and Compiling Apache httpd for Microsoft + Windows. For other platforms, see the platform documentation.
+ +If you install httpd from a distribution package (RPM, DEB, etc.), + configuration layout and defaults may differ from what is described here. + See third-party packages below, and consult your + distribution's documentation for platform-specific details.
If you are upgrading from one minor version to the next (for example, 2.4.66 to 2.4.67), please skip down to the upgrading section.
@@ -66,45 +67,6 @@Overview for the impatient ¶
-
sudo dnf install httpd - -# Start service -sudo systemctl start httpd - -# Stop service -sudo systemctl stop httpd - -# Restart service -sudo systemctl restart httpd- - -
sudo apt install apache2 - -# Start service -sudo systemctl start apache2 - -# Stop service -sudo systemctl stop apache2 - -# Restart service -sudo systemctl restart apache2- - -
| Téléchargement | -Téléchargez la dernière version depuis http://httpd.apache.org/download.cgi - | +Téléchargez la dernière version depuis https://httpd.apache.org/download.cgi + | |||||||||||||||||||||||||||||||||||||||
| Extraction | -$ gzip -d httpd-NN.tar.gz |
+ $ tar xzf httpd-NN.tar.gz +$ cd httpd-NN+ |
|||||||||||||||||||||||||||||||||||||||
| Related Modules | Related Directives |
|---|---|
| Related Modules | Related Directives |
|---|---|
The LogMessage
+ lets you create your own custom log messages to aid in debugging.
+
Available Languages: en | diff -Nru apache2-2.4.68/docs/manual/logs.html.fr.utf8 apache2-2.4.69/docs/manual/logs.html.fr.utf8 --- apache2-2.4.68/docs/manual/logs.html.fr.utf8 2026-05-31 13:57:20.000000000 +0000 +++ apache2-2.4.69/docs/manual/logs.html.fr.utf8 2026-07-01 15:26:27.000000000 +0000 @@ -83,7 +83,7 @@ certainement avoir accès à l'uid sous lequel le serveur est démarré, en l'occurrence habituellement root. N'accordez PAS aux utilisateurs l'accès en écriture au répertoire dans lequel les journaux sont stockés - sans savoir exactement quelles en seraient les conséquences ; voir le + sans savoir exactement quelles en seraient les conséquences ; voir le document conseils sur la sécurité pour plus de détails.
@@ -180,8 +180,8 @@Pour ce faire, vous devez spécifier le nom du module dans votre
directive LogLevel :
LogLevel info rewrite:trace5- +
LogLevel info rewrite:trace5+
Dans cet exemple, le niveau de journalisation général est défini
à info, et à trace5 pour mod_rewrite.
Différentes versions du démon Apache httpd utilisaient d'autres modules et directives pour contrôler la journalisation des accès, à l'instar de @@ -232,9 +233,9 @@
Voici une configuration typique pour le journal des accès :
-LogFormat "%h %l %u %t \"%r\" %>s %b" common -CustomLog logs/access_log common- +
LogFormat "%h %l %u %t \"%r\" %>s %b" common +CustomLog "logs/access_log" common+
Ici est définie l'identité common qui est
ensuite associée à une chaîne de format de journalisation particulière.
@@ -357,13 +358,14 @@
200 (%>s)2326 (%b)LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combined
-CustomLog log/access_log combined
-
+LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combined
+CustomLog "log/access_log" combined
+Ce format est identique au Common Log Format, avec deux champs
supplémentaires. Chacun de ces deux champs utilise la directive
@@ -433,11 +435,11 @@
comment simuler les effets des directives ReferLog et
AgentLog.
LogFormat "%h %l %u %t \"%r\" %>s %b" common
-CustomLog logs/access_log common
-CustomLog logs/referer_log "%{Referer}i -> %U"
-CustomLog logs/agent_log "%{User-agent}i"
-
+LogFormat "%h %l %u %t \"%r\" %>s %b" common
+CustomLog "logs/access_log" common
+CustomLog "logs/referer_log" "%{Referer}i -> %U"
+CustomLog "logs/agent_log" "%{User-agent}i"
+Cet exemple montre aussi qu'il n'est pas obligatoire d'associer une chaîne de format à un alias au moyen de la directive @@ -462,31 +464,31 @@ la variable d'environnement est définie. Quelques exemples :
-# Marque les requêtes en provenance de l'interface loop-back +# Marque les requêtes en provenance de l'interface loop-back SetEnvIf Remote_Addr "127\.0\.0\.1" dontlog # Marque les requêtes pour le fichier robots.txt SetEnvIf Request_URI "^/robots\.txt$" dontlog # Journalise toutes les autres requêtes -CustomLog logs/access_log common env=!dontlog- +CustomLog "logs/access_log" common env=!dontlog +Autre exemple, imaginons l'enregistrement des requêtes en provenance d'utilisateurs de langue anglaise dans un journal, et celles des autres utilisateurs dans un autre journal.
-SetEnvIf Accept-Language "en" english - CustomLog logs/english_log common env=english - CustomLog logs/non_english_log common env=!english- +SetEnvIf Accept-Language "en" english +CustomLog "logs/english_log" common env=english +CustomLog "logs/non_english_log" common env=!english+Dans le contexte d'une mise en cache, il peut être intéressant de connaître l'efficacité du cache. Pour y parvenir, on pourrait utiliser cette méthode simple :
-SetEnv CACHE_MISS 1 +SetEnv CACHE_MISS 1 LogFormat "%h %l %u %t "%r " %>s %b %{CACHE_MISS}e" common-cache -CustomLog logs/access_log common-cache- +CustomLog "logs/access_log" common-cache +-
mod_cacheva s'exécuter avantmod_env, et si son action est couronnée de @@ -499,9 +501,9 @@ valeurs de journalisation conditionnelles basées sur le code de la réponse HTTP :LogFormat "%400,501{User-agent}i" browserlog +LogFormat "%400,501{User-agent}i" browserlog LogFormat "%!200,304,302{Referer}i" refererlog- +Dans le premier exemple, le
User-agentsera enregistré si le code d'état HTTP est 400 ou 501. Dans le cas @@ -523,106 +525,105 @@Rotation des journaux ¶
-Même dans le cas d'un serveur modérément sollicité, la quantité - d'informations stockées dans les fichiers journaux est très importante. - Le fichier journal des accès grossit en général d'1 Mo ou plus toutes - les 10000 requêtes. Il est par conséquent nécessaire d'effectuer - périodiquement la rotation des journaux en déplaçant ou supprimant les - fichiers correspondants. On ne peut pas le faire pendant que le serveur - est en cours d'exécution, car Apache httpd va continuer à écrire dans l'ancien - fichier journal aussi longtemps qu'il le maintiendra ouvert. - C'est pourquoi le serveur doit être - redémarré après le déplacement ou la - suppression des fichiers journaux de façon à ce qu'il en ouvre - de nouveaux.
- -Avec un redémarrage graceful, on peut faire en sorte que le - serveur ouvre de nouveaux fichiers journaux sans perdre de connexions - existantes ou en cours avec les clients. Cependant, pour que ceci soit - possible, le serveur doit continuer à écrire dans les anciens fichiers - journaux pendant qu'il termine le traitement des requêtes en cours. - Il est donc nécessaire d'attendre un certain temps après le rédémarrage - avant d'effectuer tout traitement sur les fichiers journaux. Voici un - scénario typique dans lequel on effectue une simple rotation des - journaux en compressant les anciens fichiers correspondants afin - de gagner de l'espace disque :
+Même sur un serveur modérément sollicité, les fichiers journaux + grossissent rapidement — le journal des accès croît à peu près de 1 Mo ou + plus toutes les 10000 requêtes. Sans rotation, les journaux consomment de + plus en plus d’espace disque et deviennent difficiles à analyser. Il est + donc recommandé de configurer une rotation automatique des journaux dès le + départ.
-+
- mv access_log access_log.old
- mv error_log error_log.old
- apachectl graceful
- sleep 600
- gzip access_log.old error_log.old -Utilisation de rotatelogs (recommandé)
+ -La section suivante présente une autre méthode de rotation des journaux - qui consiste à utiliser les - journaux redirigés.
-
L’approche la plus simple consiste à utiliser le programme
+ rotatelogs intégré à httpd en utilisant la redirection des journaux. Ce programme permet une
+ rotation des journaux sans avoir à redémarrer le serveur et sans outil
+ externe. Pour une rotation des journaux toutes les 24 heures :
CustomLog "|/usr/local/apache/bin/rotatelogs /var/log/httpd/access_log 86400" combined +ErrorLog "|/usr/local/apache/bin/rotatelogs /var/log/httpd/error_log 86400"+
Pour une rotation lorsque la taille du journal atteint une certaine + valeur (par exemple 100 Mo) :
+ +CustomLog "|/usr/local/apache/bin/rotatelogs /var/log/httpd/access_log 100M" combined+
Vous pouvez aussi utiliser un motif de nom de fichier avec horodatage
+ sous forme d’une chaîne au format strftime :
CustomLog "|/usr/local/apache/bin/rotatelogs /var/log/httpd/access_log.%Y-%m-%d 86400" combined+
Voir rotatelogs pour une description complète de ses
+ options, en particulier les temps de décalage, les limitations de nombre de
+ fichiers et la compression.
Nous avons vu que le démon httpd écrivait les informations de
- journalisation des erreurs et des accès dans un fichier journal ;
- il peut aussi
- rediriger ces informations vers un autre processus par l'intermédiaire d'un
- tube de communication (pipe). Cette fonctionnalité améliore
- considérablement la souplesse de la journalisation, sans ajouter de code
- au serveur principal. Pour rediriger les informations de journalisation
- vers un tube de communication, remplacez simplement le nom de fichier
- journal par
- le caractère pipe "|", suivi du nom de l'exécutable qui va
- recueillir les entrées de journal sur son entrée
- standard. Le serveur va
- lancer le processus de redirection des journaux au moment du démarrage du
- serveur, et le relancera s'il cesse de fonctionner
- pendant l'exécution du serveur.
- (Nous dénommons cette technique "journalisation
- redirigée fiable" grâce à cette dernière fonctionnalité.)
Les processus de journalisation redirigée sont lancés par le processus - httpd parent, et héritent de l'UID de ce dernier. Cela signifie que les - programmes de journalisation dirigée s'exécutent généralement en tant que - root. Il est donc très important que ces programmes soient simples et - sécurisés.
- -Un des grands avantages de la journalisation redirigée est la possibilité
- d'effectuer la rotation des journaux sans avoir à redémarrer le serveur. Pour
- accomplir cette tâche, le serveur HTTP Apache fournit un programme simple
- appelé rotatelogs. Par exemple, pour une rotation des
- journaux toutes les 24 heures, ajoutez ces lignes :
CustomLog "|/usr/local/apache/bin/rotatelogs /var/log/access_log 86400" common- - -
Notez que l'ensemble de la commande qui sera appelée par le tube de - communication a été placée entre guillemets. Bien que cet exemple - concerne le journal des accès, la même technique peut être utilisée - pour le journal des erreurs.
- -Comme la journalisation conditionnelle, la journalisation redirigée est - un outil très puissant, mais si elle existe, il est préférable d'utiliser - une solution plus simple comme le traitement à posteriori hors ligne.
- - -Par défaut, le processus de redirection du journal est lancé sans
- invoquer un shell. Pour invoquer un shell, utilisez "|$"
- au lieu de "|" (en général avec /bin/sh -c)
- :
# Invocation de "rotatelogs" en utilisant un shell -CustomLog "|$/usr/local/apache/bin/rotatelogs /var/log/access_log 86400" common+
La plupart des distributions de Linux fournissent le programme
+ logrotate qui effectue une rotation, une compression et une
+ expiration des fichiers journaux selon une planification. Si votre
+ distribution comporte déjà une configuration de logrotate pour httpd
+ (examinez /etc/logrotate.d/), elle gère peut-être déjà la
+ rotation pour vous.
Lorsqu’on utilise un outil de rotation externe comme
+ logrotate, il faut faire en sorte que httpd réouvre ses
+ fichiers journaux quand les anciens ont été mis de côté. Pour ce faire,
+ l’approche standard est un redémarrage graceful :
/usr/sbin/apachectl graceful+
Votre script postrotate dans la configuration de logrotate
+ doit contenir cette dernière commande (ou la commande équivalente
+ systemctl reload). Comme httpd continue d’écrire dans
+ l’ancien fichier jusqu’à ce qu’il reçoive le signal, tout post-traitement
+ des fichiers ayant subi une rotation doit prévoir un bref délai.
Il s'agissait du comportement par défaut sous Apache 2.2. Selon
- les spécificités du shell, ceci peut générer un processus shell
- supplémentaire pour toute la durée du programme de redirection du
- journal, et induire des problèmes de gestion de signaux au cours du
- redémarrage. La notation "||" est aussi supportée pour
- des raisons de compatibilité avec Apache 2.2 et est équivalente à
- "|".
httpd peut écrire dans les fichiers journaux des erreurs et des accès à
+ travers un tube (pipe) vers un autre processus, plutôt que d’écrire
+ directement dans un fichier. Pour mettre en œuvre cette redirection,
+ remplacez le nom du fichier par le caractère pipe "|", suivi de
+ la commande qui recevra les entrées du journal sur son entrée standard :
CustomLog "|/usr/local/apache/bin/rotatelogs /var/log/httpd/access_log 86400" combined+
httpd démarre le processus de redirection des journaux au démarrage du
+ serveur et le redémarre automatiquement s’il se plante (ce comportement est
+ parfois nommé « journalisation redirigée fiable »). L’ensemble de la
+ commande à partir du caractère pipe doit être entourée de guillemets — cette
+ syntaxe fonctionne pour les deux directives CustomLog et ErrorLog.
Les processus de redirection des journaux sont lancés par le processus + httpd parent et héritent de son identifiant utilisateur. Cela signifie en + général qu’ils s’exécutent en tant que root ; faites donc en sorte que les + programmes de redirection des journaux restent simples et sécurisés.
+ +Par défaut, le processus de redirection des journaux est lancé
+ directement, sans passer par un shell. Vous pouvez utiliser
+ "|$" à la place de "|" pour effectuer ce lancement
+ via un shell (en général /bin/sh -c) :
CustomLog "|$/usr/local/apache/bin/rotatelogs /var/log/httpd/access_log 86400" combined+
La variante avec shell est parfois requise si votre commande redirigée + utilise des fonctionnalités du shell comme les caractères génériques ou le + développement de variable. Dans la plupart des cas, il est préférable + d’utiliser l’invocation directe (sans passer par un shell).
Notez que sous Windows, la mémoire allouée au bureau (desktop @@ -670,9 +671,9 @@ journal, puis de séparer ultérieurement le journal en plusieurs journaux individuels. Considérons par exemple les directives suivantes :
-LogFormat "%v %p %h %l %u %t \"%r\" %>s %b" commonvhost -CustomLog logs/access_log commonvhost- +
LogFormat "%v %p %h %l %u %t \"%r\" %>s %b" commonvhost +CustomLog "logs/access_log" commonvhost+
Le champ %v sert à enregistrer le nom de l'hôte virtuel qui
traite la requête. Un programme tel que split-logfile peut ensuite être utilisé
@@ -682,7 +683,7 @@
| Modules Apparentés | Directives Apparentées |
|---|---|
| Modules Apparentés | Directives Apparentées |
|---|---|
La directive LogMessage
+ vous permet de créer vos propres messages de journalisation
+ personnalisés pour faciliter vos opérations de débogage.
+
This page documents all the relevant standards that the - Apache HTTP Server follows, along with brief descriptions.
+This page documents the relevant standards that the + Apache HTTP Server implements or follows, along with brief + descriptions.
In addition to the information listed below, the following resources should be consulted:
This document is not yet complete.
-
HTTP Recommendations
HTML RecommendationsRegardless of what modules are compiled and used, Apache as a - basic web server complies with the following IETF recommendations:
+ basic web server complies with the following IETF standards:The following standards apply when mod_ssl is
+ enabled:
SSLStaplingCache).Concerning the different methods of authentication:
+ +Regarding the Hypertext Markup Language, Apache complies with - the following IETF and W3C recommendations:
+mod_brotli.When mod_proxy is enabled:
Concerning the different methods of authentication, Apache - follows the following IETF recommendations:
+mod_proxy_wstunnel.When mod_dav is enabled:
The following links document ISO and other language and country - code information:
+Language and country codes used in content negotiation:
Cette page documente tous les standards applicables que suit le - serveur HTTP Apache, accompagnés d'une brève description.
+Cette page documente les standards applicables que le serveur HTTP Apache + implémente ou suit, avec une brève description.
Pour compléter les informations fournies ci-dessous, vous pouvez consulter les ressources suivantes :
Ce document n'est pas encore finalisé.
-
Recommandations HTTP
Recommandations HTML
AuthentificationSans tenir compte des modules compilés et utilisés, Apache en - tant que serveur web de base respecte les recommandations IETF + tant que serveur web de base respecte les normes IETF suivantes :
Les normes suivantes s’appliquent lorsque mod_ssl est
+ activé :
SSLStaplingCache).En ce qui concerne le langage HTML, Apache respecte les - recommandations IETF et W3C suivantes :
+À propos des différentes méthodes d’authentification :
+ +mod_brotli.Quand mod_proxy est activé :
En ce qui concerne les différentes méthodes d'authentification, - Apache respecte les recommandations IETF suivantes :
+mod_proxy_wstunnel.mod_cgi et mod_cgid.Quand mod_dav est activé :
Les liens suivants fournissent des informations à propos des - codes de langages et de pays aux normes ISO ou autres :
+Les codes de langages et de pays utilisés dans la négociation de contenu + :
ÀÌ ¹®¼¿¡´Â °£´ÜÇÑ ¼³¸í°ú ÇԲ² ¾ÆÆÄġ À¥¼¹ö°¡ µû¸£´Â ¸ðµç °ü·Ã ǥÁØÀ» ¿°ÅÇѴÙ.
diff -Nru apache2-2.4.68/docs/manual/misc/security_tips.html.en apache2-2.4.69/docs/manual/misc/security_tips.html.en --- apache2-2.4.68/docs/manual/misc/security_tips.html.en 2026-05-31 13:57:20.000000000 +0000 +++ apache2-2.4.69/docs/manual/misc/security_tips.html.en 2026-09-29 11:33:23.000000000 +0000 @@ -91,8 +91,10 @@RequestReadTimeout
- directive allows to limit the time a client may take to send the
- request.handshake stage times out clients that stall during the
+ TLS handshake.
TimeOut directive
should be lowered on sites that are subject to DoS attacks.
diff -Nru apache2-2.4.68/docs/manual/misc/security_tips.html.fr.utf8 apache2-2.4.69/docs/manual/misc/security_tips.html.fr.utf8
--- apache2-2.4.68/docs/manual/misc/security_tips.html.fr.utf8 2026-06-05 12:03:44.000000000 +0000
+++ apache2-2.4.69/docs/manual/misc/security_tips.html.fr.utf8 2026-09-26 13:54:57.000000000 +0000
@@ -98,7 +98,9 @@
RequestReadTimeout permet de
- limiter le temps que met le client pour envoyer sa requête.handshake met
+ hors délai les clients qui se figent lors de la négociation TLS.TimeOut doit être diminuée sur les
diff -Nru apache2-2.4.68/docs/manual/mod/core.html.fr.utf8 apache2-2.4.69/docs/manual/mod/core.html.fr.utf8
--- apache2-2.4.68/docs/manual/mod/core.html.fr.utf8 2026-06-05 12:03:44.000000000 +0000
+++ apache2-2.4.69/docs/manual/mod/core.html.fr.utf8 2026-06-15 19:22:23.000000000 +0000
@@ -33,8 +33,6 @@
ja |
tr
-| Description: | Fonctionnalités de base du serveur HTTP Apache toujours disponibles |
|---|---|
| Statut: | Noyau httpd |
Options.
- Bien que la liste des options disponibles dans les fichiers
- .htaccess puisse être limitée par cette directive, tant qu'un
- directive Options est
- autorisée, toute autre option héritée peut être désactivée en
- utilisant la syntaxe non-relative. En d'autres termes, ce
- mécanisme ne peut pas forcer une option spécifique à rester
- activée tout en permettant à toute autre option d'être
- activée.
-
Cette restriction ne contrôle que les options qu’un fichier
+ .htaccess peut activer. Elle n’empêche pas la
+ désactivation des options héritées.
Lorsqu’une directive Options dans
+ un fichier .htaccess utilise une syntaxe absolue (sans
+ préfixe + ou -), elle remplace la
+ totalité du jeu d’options héritées. Toute option auparavant active qui
+ n’est pas listée est implicitement désactivée—il en est de même pour
+ les options qui ne sont pas dans la liste AllowOverride des
+ options permises.
Par exemple, si la configuration définit :
+Options Indexes FollowSymLinks ExecCGI +AllowOverride Options=Indexes+ +
et si un fichier .htaccess contient :
Options Indexes+ +
les options FollowSymLinks et ExecCGI seront
+ implicitement désactivée pour le répertoire concerné, même si la ligne
+ AllowOverride ne fait que permettre la définition de l’option
+ Indexes.
En bref, ce mécanisme ne peut pas forcer une option spécifique à rester + définie tout en permettant la définition de toutes les autres.
+AllowOverride Options=Indexes,MultiViewsdiff -Nru apache2-2.4.68/docs/manual/mod/directive-dict.html.fr.utf8 apache2-2.4.69/docs/manual/mod/directive-dict.html.fr.utf8 --- apache2-2.4.68/docs/manual/mod/directive-dict.html.fr.utf8 2026-05-31 13:57:20.000000000 +0000 +++ apache2-2.4.69/docs/manual/mod/directive-dict.html.fr.utf8 2026-06-08 12:25:13.000000000 +0000 @@ -30,8 +30,6 @@ ko | tr -
Ce document décrit les termes utilisés pour décrire chaque directive de configuration d'Apache.
@@ -39,7 +37,7 @@
Syntaxe
Défaut
Contexte
Surcharge/Écrasement
Surcharge .htaccess
Statut
Module
Compatibilité/chemin/vers/fichier.html. Le
- chemin-URL représente la ressource vue du web, et est
- différente de la représentation de cette même ressource vue du
- système de fichiers./path/to/file.html. chemin-URL représente la
+ ressource vue depuis le web, et est différente de la représentation de
+ cette même ressource vue depuis le système de fichiers.Les lieux de définition valides pour une directive résultent en
fait d'un
OU logique de tous les contextes spécifiés. En d'autres termes, une
- directive spécifiée comme valide dans "configuration globale,
+ directive spécifiée comme valide dans "configuration globale,
.htaccess" peut être utilisée dans le fichier
httpd.conf et dans les fichiers .htaccess,
mais pas dans un conteneur <Directory> ou <VirtualHost>.
Ce terme indique quelle autorisation de surcharge ("override") doit être +
Ce terme indique quelle autorisation de surcharge doit être
active pour que la directive puisse être traitée lorsqu'elle
apparaît dans un fichier .htaccess. Si le context de la directive ne lui permet pas
d'apparaître dans un fichier .htaccess, aucun contexte
@@ -264,7 +263,7 @@
--with-mpm=event to the configure
script's arguments when building the httpd.
+
+ When built as a DSO module, it can be loaded with:
+ +LoadModule mpm_event_module modules/mod_mpm_event.so+ +
configure lorsque vous compilez le programme
httpd.
+ Lorsque ce module est construit en tant que module DSO, il peut être +chargé à l’aide de la commande :
+ +LoadModule mpm_event_module modules/mod_mpm_event.so+ +
Ce module MPM tente de résoudre le "problème keep alive" de HTTP. Lorsqu'un client a effectué une première requête, il peut - garder la connexion ouverte et envoyer les requêtes suivante en utilisant le + garder la connexion ouverte et envoyer les requêtes suivantes en utilisant le même socket, ce qui diminue considérablement la charge qui aurait été induite par la création de nouvelles connexions TCP. Cependant, le fonctionnement du serveur HTTP Apache impose de réserver un couple processus diff -Nru apache2-2.4.68/docs/manual/mod/mod_access_compat.html.en apache2-2.4.69/docs/manual/mod/mod_access_compat.html.en --- apache2-2.4.68/docs/manual/mod/mod_access_compat.html.en 2026-05-31 13:57:20.000000000 +0000 +++ apache2-2.4.69/docs/manual/mod/mod_access_compat.html.en 2026-07-25 13:10:55.000000000 +0000 @@ -32,7 +32,7 @@
| Description: | Group authorizations based on host (name or IP address) |
|---|---|
| Status: | Extension |
| Status: | Deprecated |
| Module Identifier: | access_compat_module |
| Source File: | mod_access_compat.c |
| Compatibility: | Available in Apache HTTP Server 2.3 as a compatibility module with @@ -109,7 +109,7 @@ [host|env=[!]env-variable] ... |
| Context: | directory, .htaccess |
| Override: | Limit |
| Status: | Extension |
| Status: | Deprecated |
| Module: | mod_access_compat |
The Allow directive affects which hosts can
@@ -235,7 +235,7 @@
[host|env=[!]env-variable] ...
This directive allows access to the server to be restricted @@ -254,7 +254,7 @@
Order Deny,AllowSatisfy All<Limit> and <LimitExcept> in version 2.0.51 and
later| Description: | Autorisations de groupe à base de nom d'hôte (nom ou adresse IP) |
|---|---|
| Statut: | Extension |
| Statut: | |
| Identificateur de Module: | access_compat_module |
| Fichier Source: | mod_access_compat.c |
| Compatibilité: | Disponible dans la version 2.3 du serveur HTTP Apache @@ -116,7 +116,7 @@ [hôte|env=[!]variable d'environnement] ... |
| Contexte: | répertoire, .htaccess |
| Surcharges autorisées: | Limit |
| Statut: | Extension |
| Statut: | |
| Module: | mod_access_compat |
La directive Allow permet de définir quels
@@ -247,7 +247,7 @@
[hôte|env=[!]variable d'environnement] ...
Cette directive permet de restreindre l'accès au serveur en @@ -267,7 +267,7 @@
Order Deny,AllowSatisfy All<Limit> et <LimitExcept> à partir de la version
2.0.51| Description: | Exécution des scripts CGI en fonction du type de média ou de la méthode de requête. |
|---|---|
| Statut: | Base |
| Statut: | Base |
| Module: | mod_actions |
| Compatibilité: | Le modificateur virtual et le passage de
-gestionnaire ont été introduits dans Apache 2.1 |
Cette directive ajoute une action qui va activer script
- cgi lorsque type d'action est déclenché par la
- requête. script cgi est un chemin URL vers une ressource
- qui a été désignée comme script CGI à l'aide des directives
- ScriptAlias ou AddHandler. type d'action
- peut être soit un gestionnaire, soit
- un type de contenu MIME. L'URL
- et le chemin du document correspondant sont envoyés en utilisant
- les variables d'environnement CGI standards PATH_INFO
- et PATH_TRANSLATED. Le gestionnaire utilisé pour cette
- requête particulière est transmis à l'aide de la variable
+
Cette directive ajoute une action qui va activer script cgi
+ lorsque type d'action est déclenché par la requête. script
+ cgi est un chemin URL vers une ressource qui a été désignée comme
+ script CGI à l'aide des directives ScriptAlias ou AddHandler. type d'action peut être
+ soit un gestionnaire, soit un type de contenu MIME. L'URL et le chemin du
+ document correspondant sont envoyés en utilisant les variables
+ d'environnement CGI standards PATH_INFO
+ et PATH_TRANSLATED. Le gestionnaire utilisé pour cette requête
+ particulière est transmis à l'aide de la variable
REDIRECT_HANDLER.
# Requests for files of a particular MIME content type: diff -Nru apache2-2.4.68/docs/manual/mod/mod_brotli.html.fr.utf8 apache2-2.4.69/docs/manual/mod/mod_brotli.html.fr.utf8 --- apache2-2.4.68/docs/manual/mod/mod_brotli.html.fr.utf8 2026-05-31 13:57:20.000000000 +0000 +++ apache2-2.4.69/docs/manual/mod/mod_brotli.html.fr.utf8 2026-06-08 12:25:13.000000000 +0000 @@ -29,8 +29,6 @@
| Description: | Compression du contenu via Brotli avant sa livraison au client |
|---|---|
| Statut: | Extension |
| Identificateur de Module: | brotli_module |
| Module: | mod_brotli |
La directive BrotliCompressionMaxInputBlock permet
- de spécifier la taille maximale du bloc de données en entrée entre 16 et 24,
- sachant que plus cette taille sera grande, plus grande sera la quantité de
- mémoire consommée.
# 2^20 = blocs de 1 Mo +BrotliCompressionMaxInputBlock 20+
La directive BrotliCompressionQuality permet de
spécifier la qualité de la compression (une valeur entre 0 et
11). Les valeurs les plus hautes correspondent à une compression de
- meilleure qualité mais plus lente.
+ meilleure qualité mais plus lente. La valeur par défaut 5 est un bon
+ compromis pour du contenu dynamique.
# La valeur de qualité 4 est à peu près équivalente à gzip niveau 6 +BrotliCompressionQuality 4+
# Meilleur taux de compression mais très lent — ne convient qu’à la mise en +# cache +BrotliCompressionQuality 11+
La directive BrotliCompressionWindow permet de
spécifier la taille de la fenêtre de compression glissante brotli (une
- valeur comprise entre 10 et 24). Une taille de fenêtre plus grande peut
- améliorer la qualité de la compression mais consomme d'avantage de mémoire.
# fenêtre de 1 Mo (2^20 octets) +BrotliCompressionWindow 20+
# fenêtre de 16 Mo (2^24 octets) — nécessite une quantité de mémoire +# significative pour chaque connexion +BrotliCompressionWindow 24+
BrotliFilterNote [type] notenameNone| Description: | CERN httpd metafile semantics |
|---|---|
| Status: | Extension |
| Status: | Deprecated |
| Module Identifier: | cern_meta_module |
| Source File: | mod_cern_meta.c |
MetaDir .webSpecifies the name of the directory in which Apache can find @@ -95,7 +95,7 @@
MetaFiles offTurns on/off Meta file processing on a per-directory basis.
@@ -110,7 +110,7 @@MetaSuffix .metaSpecifies the file name suffix for the file containing the diff -Nru apache2-2.4.68/docs/manual/mod/mod_cern_meta.html.fr.utf8 apache2-2.4.69/docs/manual/mod/mod_cern_meta.html.fr.utf8 --- apache2-2.4.68/docs/manual/mod/mod_cern_meta.html.fr.utf8 2026-05-31 13:57:20.000000000 +0000 +++ apache2-2.4.69/docs/manual/mod/mod_cern_meta.html.fr.utf8 2026-08-01 12:35:47.000000000 +0000 @@ -32,7 +32,7 @@
| Description: | La sémantique des métafichiers du serveur httpd du CERN |
|---|---|
| Statut: | Extension |
| Statut: | |
| Identificateur de Module: | cern_meta_module |
| Fichier Source: | mod_cern_meta.c |
MetaDir .webSpécifie le nom du répertoire dans lequel Apache pourra trouver @@ -98,7 +98,7 @@
MetaFiles offActive ou désactive le traitement des métafichiers pour certains @@ -114,7 +114,7 @@
MetaSuffix .metaSpécifie le suffixe du fichier contenant les métainformations. diff -Nru apache2-2.4.68/docs/manual/mod/mod_data.html.fr.utf8 apache2-2.4.69/docs/manual/mod/mod_data.html.fr.utf8 --- apache2-2.4.68/docs/manual/mod/mod_data.html.fr.utf8 2026-05-31 13:57:20.000000000 +0000 +++ apache2-2.4.69/docs/manual/mod/mod_data.html.fr.utf8 2026-06-08 12:25:13.000000000 +0000 @@ -29,8 +29,6 @@
-| Description: | Convertit un corps de réponse en URL de type données RFC2397 |
|---|---|
| Statut: | Extension |
| Identificateur de Module: | data_module |
| Compatibilité: | Disponible depuis la version 2.3 du serveur HTTP Apache |
Ce module permet de convertir une réponse en URL de type données - RFC2397. +
Ce module permet de convertir une réponse en RFC 2397 (URL de type données.
Les URLs de type données peuvent être incluses en ligne dans les diff -Nru apache2-2.4.68/docs/manual/mod/mod_dbd.html.fr.utf8 apache2-2.4.69/docs/manual/mod/mod_dbd.html.fr.utf8 --- apache2-2.4.68/docs/manual/mod/mod_dbd.html.fr.utf8 2026-05-31 13:57:20.000000000 +0000 +++ apache2-2.4.69/docs/manual/mod/mod_dbd.html.fr.utf8 2026-07-12 14:48:47.000000000 +0000 @@ -29,8 +29,6 @@
-| Description: | Gestion des connexions à une base de données SQL | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Statut: | Extension | ||||||||||||||||||||||||||||
| Identificateur de Module: | dbd_module |
| Description: | Comprime le contenu avant de le servir au client |
|---|---|
| Statut: | Extension |
| Description: | Taille du fragment que zlib devra comprimer en une seule + |
|---|---|
| Description: | Taille du fragment que zlib devra compresser en une seule fois |
| Syntaxe: | DeflateBufferSize valeur |
| Défaut: | DeflateBufferSize 8096 |
| Module: | mod_deflate |
La directive DeflateBufferSize permet de
- spécifier la taille en octets du fragment que zlib devra comprimer
+ spécifier la taille en octets du fragment que zlib devra compresser
en une seule fois. Si la taille de la réponse compressée est supérieure à
celle spécifiée par cette directive, httpd passera à un mode d'encodage
fragmenté (l'en-tête HTTP Transfer-Encoding prend la valeur
@@ -350,7 +347,7 @@
fins statistiques en enregistrant sa valeur dans votre journal des accès.
DeflateFilterNote ratio
-
+
LogFormat '"%r" %b (%{ratio}n) "%{User-agent}i"' deflate
CustomLog "logs/deflate_log" deflate
Aucune limite, mais LimitRequestBody s'applique après la
compressionLa directive
- DeflateInflateLimitRequestBody permet de
- spécifier la taille maximale d'un corps de requête décompressé. Si
- elle n'est pas définie, c'est la valeur de la directive LimitRequestBody qui s'applique au corps
- de requête décompressé.
La directive DeflateInflateLimitRequestBody permet
+ de spécifier la taille maximale d'un corps de requête décompressé. Si elle
+ n'est pas définie, c'est la valeur de la directive LimitRequestBody qui s'applique au corps de
+ requête décompressé. Une valeur de 0 signifie qu’aucune limite
+ n’est imposée à la taille du corps décompressé (d’autres limites telles que
+ celles de la directive LimitRequestBody
+ peuvent cependant s’appliquer).
DeflateInflateRatioBurst valueDeflateInflateRatioBurst 3DeflateInflateRatioLimit valueDeflateInflateRatioLimit 200| Description: | Moniteur centralisé pour les serveurs d'origine mod_heartbeat |
|---|---|
| Statut: | Expérimental |
| Identificateur de Module: | heartmonitor_module |
| Description: | Server-side imagemap processing |
|---|---|
| Status: | Base |
| Status: | Deprecated |
| Module Identifier: | imagemap_module |
| Source File: | mod_imagemap.c |
ImapBase http://servername/The ImapBase directive sets the default
@@ -325,7 +325,7 @@
ImapDefault nocontentThe ImapDefault directive sets the default
@@ -346,7 +346,7 @@
ImapMenu formattedThe ImapMenu directive determines the
diff -Nru apache2-2.4.68/docs/manual/mod/mod_imagemap.html.fr.utf8 apache2-2.4.69/docs/manual/mod/mod_imagemap.html.fr.utf8
--- apache2-2.4.68/docs/manual/mod/mod_imagemap.html.fr.utf8 2026-05-31 13:57:20.000000000 +0000
+++ apache2-2.4.69/docs/manual/mod/mod_imagemap.html.fr.utf8 2026-08-01 12:35:47.000000000 +0000
@@ -32,7 +32,7 @@
| Description: | Traitement des cartes des zones interactives d'une image (imagemaps) au niveau du serveur |
|---|---|
| Statut: | Base |
| Statut: | |
| Identificateur de Module: | imagemap_module |
| Fichier Source: | mod_imagemap.c |
ImapBase http://nom_serveur/La directive ImapBase permet de définir la
@@ -346,7 +346,7 @@
ImapDefault nocontentLa directive ImapDefault permet de définir
@@ -368,7 +368,7 @@
ImapMenu formattedLa directive ImapMenu permet de spécifier
diff -Nru apache2-2.4.68/docs/manual/mod/mod_log_config.html.fr.utf8 apache2-2.4.69/docs/manual/mod/mod_log_config.html.fr.utf8
--- apache2-2.4.68/docs/manual/mod/mod_log_config.html.fr.utf8 2026-06-05 12:03:44.000000000 +0000
+++ apache2-2.4.69/docs/manual/mod/mod_log_config.html.fr.utf8 2026-07-12 14:48:47.000000000 +0000
@@ -32,8 +32,6 @@
ko |
tr
| Description: | Journalisation des requêtes envoyées au serveur | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Statut: | Base |
| Description: | Définit le nom et le format du fichier journal | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Syntaxe: | GlobalLogfile|pipe
+ |
- Set the way MDChallengeDns01 command is invoked, e.g the number and
- types of arguments. See MDChallengeDns01
+ Set the way MDChallengeDns01
+ command is invoked, e.g the number and types of arguments.
+ See MDChallengeDns01
for the differences.
+
This setting is global and cannot be varied per domain.
@@ -807,8 +810,10 @@
- The mode `all` is the behavior as in all previous versions. Both ServerName
- and ServerAlias are inspected to find the MDomain matching a VirtualHost.
+ The mode `all` is the behavior as in all previous versions. Both
+ ServerName
+ and ServerAlias are inspected
+ to find the MDomain matching a VirtualHost.
This automatically detects coverage, even when you only have added
one of the names to an MDomain.
@@ -1182,18 +1187,18 @@
This about a non-standard ACME extension by Let's Encrypt.
- Lets Encrypt supports Certificate Profiles in their CA. This, + Let's Encrypt supports Certificate Profiles in their CA. This, among some other details, let's you select the lifetime of the certificates you get. The "classic" profile is the default and will keep the 90 days, the "tlsserver" profile is also 90 days with a max of 25 Subject Alternative Names. The "shortlived" profile will issue certificates with only 6 days of validity.
- If you do not change your mod_md configuration, you will
+ If you do not change your mod_md configuration, you will
continue to get the 90 days certificates. Should you believe
that a shorter lifetime is beneficial for you (and take the
risk that the renewal time is way shorter),
-+ you can configure the profile to use via 'MDProfile shortlived'.
+ you can configure the profile to use via 'MDProfile shortlived'.
The profile names are defined by the CA. If a profile you configure is not available, no profile will be used and @@ -1214,6 +1219,7 @@
Controls if a MDProfile
@@ -1272,7 +1278,7 @@
En-/Disable certificate renewals triggered via the ACME ARI
extension (rfc9773). These renewals happen *in addition* to
- the mechanism controlled by MDRenewWindow.
+ the mechanism controlled by MDRenewWindow.
ACME ARI allows an ACME CA to somewhat shape incoming renewal traffic. More importantly though, it can inform clients of @@ -1292,7 +1298,7 @@
- If the validity of the certificate falls below duration, mod_md
+ If the validity of the certificate falls below duration, mod_md
will get a new signed certificate.
Normally, certificates are valid for around 90 days and mod_md will renew @@ -1411,7 +1417,7 @@
The number of consecutive errors on renewing a certificate before
another CA is selected. This only applies to configurations that
- have more than one MDCertificateAuthority
+ have more than one MDCertificateAuthority
specified.
| Description: | Control if Managed Domain information is added to server-status. |
|---|---|
| Description: | Control if Managed Domain information is added to server-status. |
| Syntax: | MDServerStatus on|off |
| Default: | MDServerStatus on |
| Default: | MDServerStatus off |
| Context: | server config |
| Status: | Experimental |
| Module: | mod_md |
- Apaches 'server-status' handler allows you configure a resource to monitor
- what is going on. This includes now a section listing all Managed Domains
- with the DNS names, renewal status, lifetimes and main properties.
+ If enabled, adds a section to the
+ mod_status 'server-status' handler
+ output which lists all Managed Domains with the DNS
+ names, renewal status, lifetimes and main properties.
- You can switch that off using this directive.
+ As with 'md-status', the 'server-status' output
+ must be protected from public view
+ using appropriate authorization restrictions.
Enable this to use a lock file on server startup when
- MDStoreDir is synchronized with the server
+ MDStoreDir is synchronized with the server
configuration and renewed certificates are activated.
Locking is intended for setups in a cluster that have a shared
- file system for MDStoreDir. It will protect the activation of
+ file system for MDStoreDir.
+ It will protect the activation of
renewed certificates when cluster nodes are restarted/reloaded
at the same time. Under the condition that the shared file
system does support file locking.
@@ -1618,8 +1628,8 @@
window left. With the default, this mean 9 days for certificates from
Let's Encrypt.
- It also applies to Managed Domains with static certificate files (
- see MDCertificateFile).
+ It also applies to Managed Domains with static certificate files (see
+ MDCertificateFile).
- Il existe aussi un nouveau gestionnaire, "md-status", qui peut
+ Il existe aussi un nouveau gestionnaire,
+ « md-status », qui peut
vous fournir les informations à propos des domaines gérés à
- partir de "server-status" et au format JSON. Vous pouvez le
+ partir de « server-status » et au format JSON. Vous pouvez le
configurer comme suit sur votre serveur :
<Location "/md-status"> SetHandler md-status + Require host example.com </Location>
- Comme pour "server-status", vous devez
- ajouter les autorisations nécessaires.
+ sur votre serveur. Comme pour « server-status »,
+ vous devez protéger la sortie de
+ md-status de la vue du public en instaurant des
+ restrictions d’autorisation (telles que
+ mod_authz_host).
Si vous ne souhaitez recevoir l'état JSON que pour un domaine spécifique, ajoutez le simplement à votre URL d'état : @@ -279,7 +284,7 @@ </MDomain>
- et utilisez 'server-status' et/ou MDMessageCmd pour voir comment tout
+ et utilisez « server-status » et/ou MDMessageCmd pour voir comment tout
cela fonctionne. Vous pourrez alors vérifier si l'information
d'agrafage est présente, sa durée de validité, son origine et à
quel moment elle sera rafraîchie.
@@ -427,6 +432,8 @@
Cette directive est principalement utilisée dans les
@@ -522,13 +529,13 @@
Si vous spécifiez plusieurs URLs, chacune d'entre elles est
testée en mode tourniquet ("round-robin") après un certain
nombre d'échecs. Vous pouvez définir la rapidité de ce processus
- à l'aide des directives MDRetryDelay et
- MDRetryFailover. Par défaut, une demie
+ à l'aide des directives MDRetryDelay et
+ MDRetryFailover. Par défaut, une demie
journée d'essais infructueux est considérée comme un échec.
-
+
Tous les autres réglages s'appliquent à chacune de ces URLs. Il
est ainsi par exemple impossible d'en avoir deux avec des
- directives MDExternalAccountBinding
+ directives MDExternalAccountBinding
différentes.
A des fins de test, les CAs fournissent en général une seconde @@ -636,7 +643,8 @@
- Cette directive impacte l'interface utilisateur HTML 'server-status' et
+ Cette directive impacte l'interface utilisateur HTML
+ « server-status » et
n'a rien à voir avec le fonctionnement de mod_md proprement dit.
Elle permet de définir le lien qui s'affiche sur cette interface
pour accéder facilement à un moniteur de certificat. L'empreinte
@@ -753,7 +761,7 @@
Cette directive permet de définir de quelle manière est invoquée
- la commande MDChallengeDns01, à savoir le nombre et le type de
+ la commande MDChallengeDns01, à savoir le nombre et le type de
ses arguments. Voir MDChallengeDns01 pour les
différences.
Cette définition est globale et ne peut pas s'appliquer
@@ -888,12 +896,14 @@
Cette directive permet de spécifier un serveur http mandataire +
Utiliser l’URL du serveur http mandataire direct donné
pour se connecter à l'autorité de certification spécifiée via
MDCertificateAuthority. Vous
devez la définir si votre serveur web ne peut atteindre internet que
- via un serveur mandataire.
+ via un mandataire direct.
- Le mode `all` correspond au comportement de toutes les versions
- précédentes. ServerName et ServerAlias sont inspectés pour
- trouver le MDomain qui correspond à un serveur virtuel. Les
- recouvrements sont automatiquement détectés, même si vous n'avez
- ajouté qu'un des noms à un MDomain.
+ Le mode `all` correspond au comportement de toutes les versions
+ précédentes. ServerName et
+ ServerAlias sont inspectés
+ pour trouver le MDomain
+ qui correspond à un serveur virtuel. Les recouvrements sont
+ automatiquement détectés, même si vous n'avez ajouté qu'un des
+ noms à un MDomain.
Cet automatisme présente cependant des inconvénients avec les configurations plus complexes. Si vous définissez cette @@ -1370,7 +1382,7 @@
Il s'agit d'une extension non standard d'ACME par Let's Encrypt.
- Lets Encrypt prend en charge les profiles de certificat dans + Let’s Encrypt prend en charge les profiles de certificat dans leurs CA. Cette fonctionnalité, entre autres détails, vous permet de définir la durée de validité des certificats que vous recevez. Le profile par défaut « classic » conserve la valeur de @@ -1379,7 +1391,7 @@ profile « shortlived » délivre des certificats dont la durée de validité est de 6 jours seulement.
- Si vous ne modifiez pas la configuration de votre module mod_md,
+ Si vous ne modifiez pas la configuration de votre module mod_md,
vous continuerez à recevoir des certificats d'une durée de
validité de 90 jours. Si vous pensez qu'une durée de validité
plus courte convient mieux à votre situation (et acceptez le
@@ -1405,6 +1417,8 @@
Cette directive permet de contrôler si un MDProfile que vous définissez est
@@ -1469,7 +1483,7 @@
déclenchement du renouvellement des certificats à l'aide de
l'extension ACME ARI (rfc9773). Ces renouvellements s'ajoutent à
ceux déclenchés par le mécanisme contrôlé à l'aide de la
- directive MDRenewWindow.
+ directive MDRenewWindow.
ACME ARI permet en quelque sorte à une CA ACME de façonner le trafic entrant des renouvellements. Plus important cependant, @@ -1490,7 +1504,7 @@
- Lorsqu'un certificat arrive à expiration, mod_md va
+ Lorsqu'un certificat arrive à expiration, mod_md va
tenter d'en obtenir un nouveau signé.
Normalement, les certificats ont une validité de 90 jours, et @@ -1623,10 +1637,9 @@ Apache
- Le nombre d'erreurs consécutives lors du renouvellement d'un
+ Le nombre d'erreurs consécutives lors du renouvellement d'un
certificat avant la sélection d'une autre CA. Ne s'applique
- qu'aux configurations pour lesquelles plusieurs
- MDCertificateAuthority ont été
+ qu'aux configurations pour lesquelles plusieurs MDCertificateAuthority ont été
spécifiées.
| Description: | Définit si les informations à propos des domaines gérés - sont ajoutés ou non à server-status. |
|---|---|
| Syntaxe: | MDServerStatus on|off |
| Défaut: | MDServerStatus on |
| Défaut: | MDServerStatus off |
| Contexte: | configuration globale |
| Statut: | Expérimental |
| Module: | mod_md |
- Le gestionnaire d'Apache "server-status" vous permet de - configurer une ressource pour monitorer le fonctionnement du - serveur. Cette ressource inclut maintenant une section indiquant - tous les domaines gérés avec leur nom DNS, l'état de - renouvellement du certificat, la durée de vie de ce dernier, - ainsi que d'autres propriétés fondamentales. -
- Cette directive permet d'activer/désactiver cette ressource. +
Si cette directive est activée, une section est ajoutée au
+ gestionnaire « server-status » de
+ mod_status, qui liste tous les domaines gérés avec
+ leur nom DNS, l'état de renouvellement du certificat, la durée de
+ vie de ce dernier, ainsi que d'autres propriétés fondamentales.
+
+ Comme avec « md-status », la sortie de
+ « server-status » doit être
+ protégée de la vue du public en instaurant des restrictions
+ d’autorisation appropriées.
- Définissez cette directive pour utiliser un fichier verrou au
- démarrage du serveur lorsque MDStoreDir
- est synchronisé avec la configuration du serveur et si les
- certificats renouvelés sont activés.
+ Définissez cette directive pour utiliser un fichier verrou au
+ démarrage du serveur lorsque MDStoreDir est synchronisé avec la
+ configuration du serveur et si les certificats renouvelés sont
+ activés.
Le verrouillage a été implémenté pour les configurations de
- cluster où MDStoreDir appartient à un système de fichiers
+ cluster où MDStoreDir appartient à un système de fichiers
partagé. L'activation des certificats renouvelés sera alors
protégée lorsque plusieurs noeuds du cluster sont redémarrés ou
reconfigurés simultanément ; ceci à condition bien entendu que
diff -Nru apache2-2.4.68/docs/manual/mod/mod_mime.html.fr.utf8 apache2-2.4.69/docs/manual/mod/mod_mime.html.fr.utf8
--- apache2-2.4.68/docs/manual/mod/mod_mime.html.fr.utf8 2026-05-31 13:57:20.000000000 +0000
+++ apache2-2.4.69/docs/manual/mod/mod_mime.html.fr.utf8 2026-06-08 12:25:13.000000000 +0000
@@ -30,8 +30,6 @@
fr |
ja
| Description: | Associe les extensions des fichiers demandés avec l'action déclenchée par ces fichiers et avec leur contenu (type MIME, langage, jeu de caractère et codage) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Description: | Support for Solaris privileges and for running virtual hosts under different user IDs. |
|---|---|
| Status: | Experimental |
| Status: | Deprecated |
| Module Identifier: | privileges_module |
| Source File: | mod_privileges.c |
| Compatibility: | Available in Apache 2.3 and up, on Solaris 10 and @@ -144,7 +144,7 @@ |
| Syntax: | DTracePrivileges On|Off |
| Default: | DTracePrivileges Off |
| Context: | server config |
| Status: | Experimental |
| Status: | Deprecated |
| Module: | mod_privileges |
| Compatibility: | Available on Solaris 10 and OpenSolaris with
non-threaded MPMs (prefork or custom MPM). |
| Syntax: | PrivilegesMode FAST|SECURE|SELECTIVE |
| Default: | PrivilegesMode FAST |
| Context: | server config, virtual host, directory |
| Status: | Experimental |
| Status: | Deprecated |
| Module: | mod_privileges |
| Compatibility: | Available on Solaris 10 and OpenSolaris with
non-threaded MPMs (prefork or custom MPM). |
| Syntax: | VHostCGIMode On|Off|Secure |
| Default: | VHostCGIMode On |
| Context: | virtual host |
| Status: | Experimental |
| Status: | Deprecated |
| Module: | mod_privileges |
| Compatibility: | Available on Solaris 10 and OpenSolaris with
non-threaded MPMs (prefork or custom MPM). |
| Syntax: | VHostCGIPrivs [+-]?privilege-name [[+-]?privilege-name] ... |
| Default: | None |
| Context: | virtual host |
| Status: | Experimental |
| Status: | Deprecated |
| Module: | mod_privileges |
| Compatibility: | Available on Solaris 10 and OpenSolaris with
non-threaded MPMs (prefork or custom MPM)
@@ -268,7 +268,7 @@
|
| Default: | Inherits the group id specified in
|
| Context: | virtual host |
| Status: | Experimental |
| Status: | Deprecated |
| Module: | mod_privileges |
| Compatibility: | Available on Solaris 10 and OpenSolaris with
non-threaded MPMs (prefork or custom MPM). |
| Syntax: | VHostPrivs [+-]?privilege-name [[+-]?privilege-name] ... |
| Default: | None |
| Context: | virtual host |
| Status: | Experimental |
| Status: | Deprecated |
| Module: | mod_privileges |
| Compatibility: | Available on Solaris 10 and OpenSolaris with
non-threaded MPMs (prefork or custom MPM)
@@ -337,7 +337,7 @@
|
| Syntax: | VHostSecure On|Off |
| Default: | VHostSecure On |
| Context: | virtual host |
| Status: | Experimental |
| Status: | Deprecated |
| Module: | mod_privileges |
| Compatibility: | Available on Solaris 10 and OpenSolaris with
non-threaded MPMs (prefork or custom MPM). |
| Default: | Inherits the userid specified in
|
| Context: | virtual host |
| Status: | Experimental |
| Status: | Deprecated |
| Module: | mod_privileges |
| Compatibility: | Available on Solaris 10 and OpenSolaris with
non-threaded MPMs (prefork or custom MPM). |
| Description: | Support des privilèges de Solaris et de l'exécution des serveurs virtuels sous différents identifiants utilisateurs. |
|---|---|
| Statut: | Expérimental |
| Statut: | |
| Identificateur de Module: | privileges_module |
| Fichier Source: | mod_privileges.c |
| Compatibilité: | Disponible depuis la version 2.3 d'Apache sur les @@ -163,7 +163,7 @@ |
| Syntaxe: | DTracePrivileges On|Off |
| Défaut: | DTracePrivileges Off |
| Contexte: | configuration globale |
| Statut: | Expérimental |
| Statut: | |
| Module: | mod_privileges |
| Compatibilité: | >Disponible sous Solaris 10 et OpenSolaris avec les
modules MPM non-threadés (prefork ou MPM
@@ -185,7 +185,7 @@
|
| Syntaxe: | PrivilegesMode FAST|SECURE|SELECTIVE |
| Défaut: | PrivilegesMode FAST |
| Contexte: | configuration globale, serveur virtuel, répertoire |
| Statut: | Expérimental |
| Statut: | |
| Module: | mod_privileges |
| Compatibilité: | Disponible sous Solaris 10 et OpenSolaris avec des
modules MPMs non threadés (comme prefork ou un module
@@ -231,7 +231,7 @@
|
| Syntaxe: | VHostCGIMode On|Off|Secure |
| Défaut: | VHostCGIMode On |
| Contexte: | serveur virtuel |
| Statut: | Expérimental |
| Statut: | |
| Module: | mod_privileges |
| Compatibilité: | Disponible sous Solaris 10 et OpenSolaris avec les
modules MPM non-threadés (prefork ou MPM
@@ -266,7 +266,7 @@
|
| Syntaxe: | VHostCGIPrivs [+-]?privilege-name [[+-]?privilege-name] ... |
| Défaut: | Aucun |
| Contexte: | serveur virtuel |
| Statut: | Expérimental |
| Statut: | |
| Module: | mod_privileges |
| Compatibilité: | Disponible sous Solaris 10 et OpenSolaris avec les
modules MPM non-threadés (prefork ou MPM
@@ -304,7 +304,7 @@
|
| Défaut: | Hérite de l'identifiant du groupe spécifié par la directive
|
| Contexte: | serveur virtuel |
| Statut: | Expérimental |
| Statut: | |
| Module: | mod_privileges |
| Compatibilité: | Disponible sous Solaris 10 et OpenSolaris avec les
modules MPM non-threadés (prefork ou MPM
@@ -346,7 +346,7 @@
|
| Syntaxe: | VHostPrivs [+-]?nom-privilège [[+-]?nom-privilège] ... |
| Défaut: | Aucun |
| Contexte: | serveur virtuel |
| Statut: | Expérimental |
| Statut: | |
| Module: | mod_privileges |
| Compatibilité: | Disponible sous Solaris 10 et OpenSolaris avec les
modules MPM non-threadés (prefork ou MPM
@@ -381,7 +381,7 @@
|
| Syntaxe: | VHostSecure On|Off |
| Défaut: | VHostSecure On |
| Contexte: | serveur virtuel |
| Statut: | Expérimental |
| Statut: | |
| Module: | mod_privileges |
| Compatibilité: | Disponible sous Solaris 10 et OpenSolaris avec les
modules MPM non-threadés (prefork ou MPM
@@ -411,7 +411,7 @@
|
| Défaut: | Hérite de l'identifiant utilisateur spécifié par la directive
|
| Contexte: | serveur virtuel |
| Statut: | Expérimental |
| Statut: | |
| Module: | mod_privileges |
| Compatibilité: | Disponible sous Solaris 10 et OpenSolaris avec les
modules MPM non-threadés (prefork ou MPM
diff -Nru apache2-2.4.68/docs/manual/mod/mod_proxy.html.en apache2-2.4.69/docs/manual/mod/mod_proxy.html.en
--- apache2-2.4.68/docs/manual/mod/mod_proxy.html.en 2026-05-31 13:57:20.000000000 +0000
+++ apache2-2.4.69/docs/manual/mod/mod_proxy.html.en 2026-09-03 12:30:26.000000000 +0000
@@ -733,8 +733,9 @@
|
| Module: | mod_proxy |
Directives placed in <Proxy>
- sections apply only to matching proxied content. Shell-style wildcards are
- allowed.
For example, the following will allow only hosts in
yournetwork.example.com to access content via your proxy
@@ -754,6 +755,14 @@
</Proxy>
+
A backend URL matches the configuration section if it begins with the
the wildcard-url string, even if the last path segment in the
@@ -981,6 +990,14 @@
identical to the <Proxy> directive, except that it matches URLs
using regular expressions.
From 2.4.8 onwards, named groups and backreferences are captured and written to the environment with the corresponding name prefixed with "MATCH_" and in upper case. This allows elements of URLs to be referenced @@ -2028,6 +2045,13 @@ sent without first waiting for the remote proxy to send a Basic authentication challenge. The Proxy-Chain-Auth environment variable has no effect if this argument is used.
+ +When a forward (remote) proxy is configured, DNS resolution of
+ the origin/backend hostname is only performed on the forward proxy.
+ Any ProxyBlock rules
+ which restrict access to specific IP addresses must be configured
+ at the forward proxy.
Les directives situées dans une section <Proxy> ne s'appliquent qu'au contenu
- mandaté concerné. Les jokers de style shell sont autorisés.
Les directives situées dans une section <Proxy> ne s'appliquent qu'au contenu mandaté
+ concerné en utilisant une recherche de correspondance simple entre le
+ préfixe de type chaîne et l’URL. Les jokers de style shell sont
+ autorisés.
Par exemple, les lignes suivantes n'autoriseront à accéder à un contenu via votre serveur mandataire que les hôtes appartenant à @@ -843,6 +845,15 @@ </Proxy> +
Une URL d'arrière-plan sera concernée par le conteneur Proxy si
elle commence par la url-avec-jokers, même si le
@@ -1096,6 +1107,15 @@
identique à la directive <Proxy>, à l'exception qu'elle définit
les URLs auxquelles elle s'applique en utilisant une expression rationnelle.
A partir de la version 2.4.8, les groupes nommés et les références arrières sont extraits et enregistrés dans l'environnement avec leur nom en majuscules et préfixé par "MATCH_". Ceci permet @@ -2307,6 +2327,13 @@ d'authentification. La variable d'environnement Proxy-Chain-Auth n'est plus prise en compte si cet argument est utilisé.
+Lorsqu’un mandataire direct (distant) est configuré, la résolution DNS du
+ nom d’hôte originel/dorsal n’est effectuée que sur le mandataire direct.
+ Toute règle ProxyBlock qui limite
+ l’accès à des adresses IP spécifiques doit être définie au niveau du
+ mandataire direct.
| Description: | Module fournissant le support de la passerelle SCGI à
mod_proxy |
|---|---|
| Statut: | Extension |
| Description: | Websockets support module for
mod_proxy |
|---|---|
| Status: | Extension |
| Status: | Deprecated |
| Module Identifier: | proxy_wstunnel_module |
| Source File: | mod_proxy_wstunnel.c |
| Compatibility: | Available in httpd 2.4.5 and later |
ProxyWebsocketFallbackToProxyHttp On|OffProxyWebsocketFallbackToProxyHttp On| Description: | Module pour mod_proxy supportant les
websockets |
|---|---|
| Statut: | Extension |
| Statut: | |
| Identificateur de Module: | proxy_wstunnel_module |
| Fichier Source: | mod_proxy_wstunnel.c |
| Compatibilité: | Disponible à partir de la version 2.4.5 du serveur HTTP @@ -112,7 +112,7 @@ |
| Syntaxe: | ProxyWebsocketFallbackToProxyHttp On|Off |
| Défaut: | ProxyWebsocketFallbackToProxyHttp On |
| Contexte: | configuration globale, serveur virtuel |
| Statut: | Extension |
| Statut: | |
| Module: | mod_proxy_wstunnel |
| Compatibilité: | Disponible à partir de la version 2.4.48 du serveur HTTP Apache |
mod_rewrite provides a flexible and powerful way to
- manipulate URLs using an unlimited number of rules. Each rule can have an
+
It provides a flexible and powerful way to manipulate URLs using an + unlimited number of rules. Each rule can have an unlimited number of attached rule conditions, to allow you to rewrite URLs based on server variables (including HTTP headers, connection details, and timestamps), environment variables, - or other request properties.
- -mod_rewrite can operate on the full URL-path, or any
- portion of it, including the PATH_INFO or QUERY_STRING.
A rewrite rule can be invoked in the server configuration files, or in per-directory context. The substitution @@ -73,7 +74,10 @@
RewriteOptions
RewriteRuleIf the CondPattern is prefixed with a ! the
- condition is determined to be true only if the the
+ condition is determined to be true only if the
CondPattern does not match.
TestString is a string which can contain the following expanded constructs in addition to plain text:
-$N
+
+
+
+
+ $N — RewriteRule backreferences$N
(0 <= N <= 9). $1 to $9 provide access to the grouped
parts (in parentheses) of the pattern, from the
RewriteRule which is subject to the current
set of RewriteCond conditions. $0 provides
- access to the whole string matched by that pattern.
+ access to the whole string matched by that pattern.!, no backreferences are ever defined.%N
+ %N — RewriteCond backreferences%N
(0 <= N <= 9). %1 to %9 provide access to the grouped
parts (again, in parentheses) of the pattern, from the last matched
RewriteCond in the current set
of conditions. %0 provides access to the whole string matched by
- that pattern.
+ that pattern.!, no backreferences are ever defined.${mapname:key|default}.
- See the documentation for
- RewriteMap for more details.
- %{ NAME_OF_VARIABLE
- }
- where NAME_OF_VARIABLE can be a string taken
- from the following list:
+ !, no backreferences are ever defined.
+ See How the
+ Ruleset is Applied for more details on the order in which
+ patterns are matched and backreferences populated.These are expansions of the form ${mapname:key|default}.
+ See the documentation for
+ RewriteMap for more details.
These are variables of the form
+ %{ NAME_OF_VARIABLE
+ }
+ where NAME_OF_VARIABLE can be a string taken
+ from the following list:
| Description: | Ce module fournit un moteur de réécriture à base de règles permettant de réécrire les URLs des requêtes à la volée |
|---|---|
| Statut: | Extension |
| Module: | mod_rewrite |
La directive RewriteBase permet de
- spécifier le préfixe d'URL à utiliser dans un contexte de
- répertoire (htaccess) pour les directives
- RewriteRule qui réécrivent vers un chemin
+
La directive RewriteBase permet de spécifier le
+ préfixe d'URL à utiliser dans un contexte de
+ répertoire (htaccess) pour les directives RewriteRule qui réécrivent vers un chemin
relatif.
Cette directive est obligatoire si vous utilisez un - chemin relatif dans une substitution, et dans un contexte de - répertoire (htaccess), sauf si au moins une de ces conditions est - vérifiée :
+Cette directive est obligatoire si vous utilisez un chemin + relatif dans une substitution, et dans un contexte de répertoire (htaccess), sauf si + au moins une de ces conditions est vérifiée :
DocumentRoot (c'est à
dire que pour y accéder, il n'est pas nécessaire d'utiliser
une directive telle qu'Alias).RewriteRule, suffixé par
- la substitution relative est aussi valide en tant qu'URL sur
- le serveur (ce qui est rare).RewriteRule s’applique, suffixé par
+ la substitution relative est aussi valable en tant que chemin d'URL
+ sur le serveur (ce qui est rare).mod_userdir.Dans l'exemple ci-dessous, la directive
-RewriteBase est nécessaire afin d'éviter une
-réécriture en http://example.com/opt/myapp-1.2.3/welcome.html car la
-ressource n'était pas relative à la racine des documents. Cette erreur
-de configuration aurait conduit le serveur à rechercher un répertoire
-"opt" à la racine des documents.
DocumentRoot "/var/www/example.com" -AliasMatch "^/myapp" "/opt/myapp-1.2.3" -<Directory "/opt/myapp-1.2.3"> - RewriteEngine On - RewriteBase "/myapp/" - RewriteRule "^index\.html$" "welcome.html" -</Directory>- - @@ -185,7 +164,7 @@ la réécriture soit effectuée
RewriteCond
- chaîne_de_test expression_de_comparaison [drapeaux]Si CondPattern est préfixé par un !, la condition
+ ne sera évaluée à vrai que si CondPattern ne correspond pas.
TestString est une chaîne qui peut contenir les extensions suivantes en plus du texte simple :
-$N (0 <= N <= 9). $1 à $9
- permettent d'accéder aux parties regroupées (entre
- parenthèses) du modèle, issues de la RewriteRule
- concernée par le jeu de conditions RewriteCond
- courant. $0 donne accès à l'ensemble de la chaîne
- correspondant au modèle.%N (0 <= N <= 9). %1 à %9
- permettent d'accéder aux parties regroupées (entre
- parenthèses) du modèle, issues de la dernière
- condition RewriteCond satisfaite du jeu de conditions RewriteCond
- courant. %0 donne accès à l'ensemble de la chaîne
- correspondant au modèle.${nomTable:clé|défaut}. Voir la href="#mapfunc">documentation sur RewriteMap
- pour plus de détails.
- %{ NAME_OF_VARIABLE },
- où NOM_DE_VARIABLE peut contenir une chaîne issue
- de la liste suivante :
+
+
+
+
+ $N — Références arrières des
+ règles RewriteRule$N (0 <= N <=
+ 9). $1 à $9 permettent d'accéder aux parties regroupées (entre
+ parenthèses) du modèle, issues de la RewriteRule concernée
+ par le jeu de conditions RewriteCond courant. $0 donne
+ accès à l'ensemble de la chaîne correspondant au modèle.%N — Références arrières des
+ conditions RewriteCond%N (0 <= N <=
+ 9). %1 à %9 permettent d'accéder aux parties regroupées (entre
+ parenthèses) du modèle, issues de la dernière condition
+ RewriteCond satisfaite du jeu de conditions
+ RewriteCond courant. %0 donne accès à l'ensemble de la
+ chaîne correspondant au modèle.!, aucune référence arrière
+ ne sera donc définie. Voir le document La manière dont le jeu de
+ règles est appliqué pour plus de détails à propos de l’ordre dans
+ lequel les motifs sont mis en correspondance et les références arrières
+ définies.Développement des mappages RewriteMap
+ +Ce sont des développements de la forme
+ ${mapname:key|default}. Voir la documentation de RewriteMap pour plus de détails.
Le serveur et les variables CGI
+ +Ce sont des variables de la forme %{
+ NAME_OF_VARIABLE } où
+ NAME_OF_VARIABLE peut être une des chaînes de la liste suivante :
| Description: | Définit les règles pour le moteur de réécriture | |
|---|---|---|
| Syntaxe: | RewriteRule
- Modèle Substitution [drapeaux] | |
| Contexte: | configuration globale, serveur virtuel, répertoire, .htaccess | |
| Surcharges autorisées: | FileInfo | |
| Statut: | Extension | |
| B | -Echappe les caractères non-alphanumériques dans les références + | Echappe les caractères non-alphanumériques dans les références arrières avant d'appliquer la transformation. Pour un échappement similaire des variables du serveur, voir la fonction de mappage "escape".détails ... |
| END | -Stoppe le processus de réécriture immédiatement et - n'applique plus aucune règle. Empêche aussi l'application - ultérieure de règles de réécriture dans les contextes de - répertoire et de fichier .htaccess (disponible à partir de la - version 2.3.9 du serveur HTTP Apache). détails ... | +Stoppe le processus de réécriture immédiatement et n'applique plus + aucune règle. Empêche aussi l'application ultérieure de règles de + réécriture dans les contextes de répertoire et de fichier .htaccess + (disponible à partir de la version 2.3.9 du serveur HTTP Apache). détails ... |
| env|E=[!]VAR[:VAL] | @@ -1492,10 +1533,10 @@||
| last|L | -Arrête le processus de réécriture immédiatement et n'applique - plus aucune règle. Prêtez une attention particulière aux mises - en garde concernant les contextes de niveau répertoire et - .htaccess (voir aussi le drapeau END). détails ... | +Arrête le processus de réécriture immédiatement et n'applique plus + aucune règle. Prêtez une attention particulière aux mises en garde + concernant les contextes de niveau répertoire (voir aussi le drapeau END). + détails ... |
| next|N | @@ -1569,7 +1610,7 @@||
| UnsafeAllow3F | -Autorise les substitutions à partir d'URL potentiellement non + | Autorise les substitutions à partir d’URL potentiellement non fiables. détails ... | @@ -1577,7 +1618,7 @@
| UnsafePrefixStat | Autorise les substitutions potentiellement non fiables à partir
- d'une variable de tête ou d'une référence arrière vers un chemin du
+ d’une variable de tête ou d’une référence arrière vers un chemin du
système de fichiers.
détails ... Disponible à partir de la version 2.4.60 du serveur HTTP Apache. @@ -1588,8 +1629,8 @@ |
Empêche la fusion des slashes de début multiples tels que ceux utilisés
dans les chemins UNC de Windows.
- détails ... - Disponible à partir de la version 2.4.62 du serveur HTTP Apache. + details ... + Disponible à partir de la version 2.4.62 du serveur HTTP Apache. |
Voici toutes les combinaisons de substitution et leurs significations :
-Dans la configuration au niveau du serveur principal
- (httpd.conf)
- pour la requête ``GET
- /chemin/infochemin'':
-
En dehors de la configuration au niveau du répertoire pour la requête ``GET
+ /chemin/infochemin'':
| Règle | @@ -1668,13 +1706,10 @@
|---|
Dans une configuration de niveau répertoire pour
- /chemin
- (/chemin/physique/vers/chemin/.htacccess, avec
- RewriteBase "/chemin")
- pour la requête ``GET
- /chemin/chemin-local/infochemin'':
-
Dans une configuration de niveau répertoire pour /chemin
+ (par exemple, .htaccess ou <Directory>,
+ avec RewriteBase "/chemin")
pour la requête ``GET
+ /chemin/chemin-local/infochemin'':
| Règle | diff -Nru apache2-2.4.68/docs/manual/mod/mod_socache_redis.html.fr.utf8 apache2-2.4.69/docs/manual/mod/mod_socache_redis.html.fr.utf8 --- apache2-2.4.68/docs/manual/mod/mod_socache_redis.html.fr.utf8 2026-05-31 13:57:20.000000000 +0000 +++ apache2-2.4.69/docs/manual/mod/mod_socache_redis.html.fr.utf8 2026-09-12 13:37:12.000000000 +0000 @@ -79,9 +79,9 @@ (plateformes threadées seulement).|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Description: | Fournit une variable d'environnement contenant un identifiant unique pour chaque requête | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Statut: | Extension | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <Else> | core | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Contient des directives qui ne s'appliquent que si la
+
AuthConfigdiff -Nru apache2-2.4.68/docs/manual/mod/prefork.html.en apache2-2.4.69/docs/manual/mod/prefork.html.en --- apache2-2.4.68/docs/manual/mod/prefork.html.en 2026-05-31 13:57:20.000000000 +0000 +++ apache2-2.4.69/docs/manual/mod/prefork.html.en 2026-06-16 16:46:03.000000000 +0000 @@ -52,6 +52,12 @@ to handle as many simultaneous requests as you expect to receive, but small enough to assure that there is enough physical RAM for all processes. + +When built as a DSO module, it can be loaded with: + +LoadModule mpm_prefork_module modules/mod_mpm_prefork.so+ + Topics
Bugfix checklistSee alsoLorsqu’il est construit en tant que module DSO, ce module peut être + chargé avec la commande : + +LoadModule mpm_prefork_module modules/mod_mpm_prefork.so+ + Sujets
Traitement des bugsVoir aussiBu çeviri güncel olmayabilir. Son değişiklikler için İngilizce sürüm geçerlidir.
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||