Linux cesa-www-main 6.1.0-49-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.174-1 (2026-05-26) x86_64
Apache/2.4.68 (Debian)
Server IP : 10.218.0.2 & Your IP : 216.73.216.28
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
share /
doc /
apache2-doc /
manual /
es /
mod /
Delete
Unzip
Name
Size
Permission
Date
Action
core.html
267.44
KB
-rw-r--r--
2026-06-12 05:08
directive-dict.html
20.14
KB
-rw-r--r--
2026-06-12 05:08
directives.html
58.36
KB
-rw-r--r--
2026-06-12 05:08
event.html
28.64
KB
-rw-r--r--
2026-06-12 05:08
index.html
24.93
KB
-rw-r--r--
2026-06-12 05:08
mod_access_compat.html
28.27
KB
-rw-r--r--
2026-06-12 05:08
mod_actions.html
12.61
KB
-rw-r--r--
2026-06-12 05:08
mod_alias.html
40.63
KB
-rw-r--r--
2026-06-12 05:08
mod_allowmethods.html
7.79
KB
-rw-r--r--
2026-06-12 05:08
mod_asis.html
8.65
KB
-rw-r--r--
2026-06-12 05:08
mod_auth_basic.html
19.39
KB
-rw-r--r--
2026-06-12 05:08
mod_auth_digest.html
20.06
KB
-rw-r--r--
2026-06-12 05:08
mod_auth_form.html
50.26
KB
-rw-r--r--
2026-06-12 05:08
mod_authn_anon.html
16.37
KB
-rw-r--r--
2026-06-12 05:08
mod_authn_core.html
16.45
KB
-rw-r--r--
2026-06-12 05:08
mod_authn_dbd.html
15.01
KB
-rw-r--r--
2026-06-12 05:08
mod_authn_dbm.html
12.48
KB
-rw-r--r--
2026-06-12 05:08
mod_authn_file.html
11.17
KB
-rw-r--r--
2026-06-12 05:08
mod_authn_socache.html
18.79
KB
-rw-r--r--
2026-06-12 05:08
mod_authnz_fcgi.html
26.93
KB
-rw-r--r--
2026-06-12 05:08
mod_authnz_ldap.html
86.06
KB
-rw-r--r--
2026-06-12 05:08
mod_authz_core.html
39.59
KB
-rw-r--r--
2026-06-12 05:08
mod_authz_dbd.html
18.13
KB
-rw-r--r--
2026-06-12 05:08
mod_authz_dbm.html
12.7
KB
-rw-r--r--
2026-06-12 05:08
mod_authz_groupfile.html
10.24
KB
-rw-r--r--
2026-06-12 05:08
mod_authz_host.html
13.12
KB
-rw-r--r--
2026-06-12 05:08
mod_authz_owner.html
11
KB
-rw-r--r--
2026-06-12 05:08
mod_authz_user.html
7.91
KB
-rw-r--r--
2026-06-12 05:08
mod_autoindex.html
63.19
KB
-rw-r--r--
2026-06-12 05:08
mod_brotli.html
22.65
KB
-rw-r--r--
2026-06-12 05:08
mod_buffer.html
8.76
KB
-rw-r--r--
2026-06-12 05:08
mod_cache.html
69.74
KB
-rw-r--r--
2026-06-12 05:08
mod_cache_disk.html
20.06
KB
-rw-r--r--
2026-06-12 05:08
mod_cache_socache.html
18.21
KB
-rw-r--r--
2026-06-12 05:08
mod_cern_meta.html
10.83
KB
-rw-r--r--
2026-06-12 05:08
mod_cgi.html
19.94
KB
-rw-r--r--
2026-06-12 05:08
mod_cgid.html
11.36
KB
-rw-r--r--
2026-06-12 05:08
mod_charset_lite.html
15.11
KB
-rw-r--r--
2026-06-12 05:08
mod_data.html
7.2
KB
-rw-r--r--
2026-06-12 05:08
mod_dav.html
19.88
KB
-rw-r--r--
2026-06-12 05:08
mod_dav_fs.html
10.54
KB
-rw-r--r--
2026-06-12 05:08
mod_dav_lock.html
9.51
KB
-rw-r--r--
2026-06-12 05:08
mod_dbd.html
24.89
KB
-rw-r--r--
2026-06-12 05:08
mod_deflate.html
31.15
KB
-rw-r--r--
2026-06-12 05:08
mod_dialup.html
7.2
KB
-rw-r--r--
2026-06-12 05:08
mod_dir.html
23.75
KB
-rw-r--r--
2026-06-12 05:08
mod_dumpio.html
9.41
KB
-rw-r--r--
2026-06-12 05:08
mod_echo.html
7.16
KB
-rw-r--r--
2026-06-12 05:08
mod_env.html
11.48
KB
-rw-r--r--
2026-06-12 05:08
mod_example_hooks.html
11.01
KB
-rw-r--r--
2026-06-12 05:08
mod_expires.html
17.21
KB
-rw-r--r--
2026-06-12 05:08
mod_ext_filter.html
18.05
KB
-rw-r--r--
2026-06-12 05:08
mod_file_cache.html
15.2
KB
-rw-r--r--
2026-06-12 05:08
mod_filter.html
33.35
KB
-rw-r--r--
2026-06-12 05:08
mod_headers.html
34.06
KB
-rw-r--r--
2026-06-12 05:08
mod_heartbeat.html
9.29
KB
-rw-r--r--
2026-06-12 05:08
mod_heartmonitor.html
11.92
KB
-rw-r--r--
2026-06-12 05:08
mod_http2.html
75.84
KB
-rw-r--r--
2026-06-12 05:08
mod_ident.html
9.74
KB
-rw-r--r--
2026-06-12 05:08
mod_imagemap.html
21.06
KB
-rw-r--r--
2026-06-12 05:08
mod_include.html
59.69
KB
-rw-r--r--
2026-06-12 05:08
mod_info.html
14.52
KB
-rw-r--r--
2026-06-12 05:08
mod_isapi.html
23.44
KB
-rw-r--r--
2026-06-12 05:08
mod_lbmethod_bybusyness.html
7.6
KB
-rw-r--r--
2026-06-12 05:08
mod_lbmethod_byrequests.html
12.3
KB
-rw-r--r--
2026-06-12 05:08
mod_lbmethod_bytraffic.html
7.95
KB
-rw-r--r--
2026-06-12 05:08
mod_lbmethod_heartbeat.html
8.02
KB
-rw-r--r--
2026-06-12 05:08
mod_ldap.html
50.89
KB
-rw-r--r--
2026-06-12 05:08
mod_log_config.html
38.27
KB
-rw-r--r--
2026-06-12 05:08
mod_log_debug.html
9.95
KB
-rw-r--r--
2026-06-12 05:08
mod_log_forensic.html
12.64
KB
-rw-r--r--
2026-06-12 05:08
mod_logio.html
10.29
KB
-rw-r--r--
2026-06-12 05:08
mod_lua.html
93.06
KB
-rw-r--r--
2026-06-12 05:08
mod_macro.html
15.29
KB
-rw-r--r--
2026-06-12 05:08
mod_md.html
109.91
KB
-rw-r--r--
2026-06-12 05:08
mod_mime.html
66.05
KB
-rw-r--r--
2026-06-12 05:08
mod_mime_magic.html
16.52
KB
-rw-r--r--
2026-06-12 05:08
mod_negotiation.html
21.68
KB
-rw-r--r--
2026-06-12 05:08
mod_nw_ssl.html
9.27
KB
-rw-r--r--
2026-06-12 05:08
mod_privileges.html
29.36
KB
-rw-r--r--
2026-06-12 05:08
mod_proxy.html
137.06
KB
-rw-r--r--
2026-06-12 05:08
mod_proxy_ajp.html
32.56
KB
-rw-r--r--
2026-06-12 05:08
mod_proxy_balancer.html
23.03
KB
-rw-r--r--
2026-06-12 05:08
mod_proxy_connect.html
9.85
KB
-rw-r--r--
2026-06-12 05:08
mod_proxy_express.html
13.19
KB
-rw-r--r--
2026-06-12 05:08
mod_proxy_fcgi.html
22.14
KB
-rw-r--r--
2026-06-12 05:08
mod_proxy_fdpass.html
7.2
KB
-rw-r--r--
2026-06-12 05:08
mod_proxy_ftp.html
18.84
KB
-rw-r--r--
2026-06-12 05:08
mod_proxy_hcheck.html
17.43
KB
-rw-r--r--
2026-06-12 05:08
mod_proxy_html.html
34.16
KB
-rw-r--r--
2026-06-12 05:08
mod_proxy_http.html
11.63
KB
-rw-r--r--
2026-06-12 05:08
mod_proxy_http2.html
10.05
KB
-rw-r--r--
2026-06-12 05:08
mod_proxy_scgi.html
14.49
KB
-rw-r--r--
2026-06-12 05:08
mod_proxy_uwsgi.html
8.15
KB
-rw-r--r--
2026-06-12 05:08
mod_proxy_wstunnel.html
10.73
KB
-rw-r--r--
2026-06-12 05:08
mod_ratelimit.html
6.72
KB
-rw-r--r--
2026-06-12 05:08
mod_reflector.html
8.28
KB
-rw-r--r--
2026-06-12 05:08
mod_remoteip.html
26.54
KB
-rw-r--r--
2026-06-12 05:08
mod_reqtimeout.html
12.49
KB
-rw-r--r--
2026-06-12 05:08
mod_request.html
9.03
KB
-rw-r--r--
2026-06-12 05:08
mod_rewrite.html
82.27
KB
-rw-r--r--
2026-06-12 05:08
mod_sed.html
11.53
KB
-rw-r--r--
2026-06-12 05:08
mod_session.html
35.31
KB
-rw-r--r--
2026-06-12 05:08
mod_session_cookie.html
13.55
KB
-rw-r--r--
2026-06-12 05:08
mod_session_crypto.html
17.73
KB
-rw-r--r--
2026-06-12 05:08
mod_session_dbd.html
25.2
KB
-rw-r--r--
2026-06-12 05:08
mod_setenvif.html
21.77
KB
-rw-r--r--
2026-06-12 05:08
mod_slotmem_plain.html
7.76
KB
-rw-r--r--
2026-06-12 05:08
mod_slotmem_shm.html
8.36
KB
-rw-r--r--
2026-06-12 05:08
mod_so.html
13.5
KB
-rw-r--r--
2026-06-12 05:08
mod_socache_dbm.html
5.82
KB
-rw-r--r--
2026-06-12 05:08
mod_socache_dc.html
5.87
KB
-rw-r--r--
2026-06-12 05:08
mod_socache_memcache.html
8.34
KB
-rw-r--r--
2026-06-12 05:08
mod_socache_redis.html
10
KB
-rw-r--r--
2026-06-12 05:08
mod_socache_shmcb.html
5.9
KB
-rw-r--r--
2026-06-12 05:08
mod_speling.html
12.64
KB
-rw-r--r--
2026-06-12 05:08
mod_ssl.html
200.72
KB
-rw-r--r--
2026-06-12 05:08
mod_status.html
11.84
KB
-rw-r--r--
2026-06-12 05:08
mod_substitute.html
14.37
KB
-rw-r--r--
2026-06-12 05:08
mod_suexec.html
7.89
KB
-rw-r--r--
2026-06-12 05:08
mod_systemd.html
7.57
KB
-rw-r--r--
2026-06-12 05:08
mod_unique_id.html
14.89
KB
-rw-r--r--
2026-06-12 05:08
mod_unixd.html
13.54
KB
-rw-r--r--
2026-06-12 05:08
mod_userdir.html
12.36
KB
-rw-r--r--
2026-06-12 05:08
mod_usertrack.html
19.68
KB
-rw-r--r--
2026-06-12 05:08
mod_version.html
10.05
KB
-rw-r--r--
2026-06-12 05:08
mod_vhost_alias.html
21.12
KB
-rw-r--r--
2026-06-12 05:08
mod_watchdog.html
7.73
KB
-rw-r--r--
2026-06-12 05:08
mod_xml2enc.html
15.3
KB
-rw-r--r--
2026-06-12 05:08
module-dict.html
9.17
KB
-rw-r--r--
2026-06-12 05:08
mpm_common.html
70.04
KB
-rw-r--r--
2026-06-12 05:08
mpm_netware.html
9.82
KB
-rw-r--r--
2026-06-12 05:08
mpm_winnt.html
10.58
KB
-rw-r--r--
2026-06-12 05:08
mpmt_os2.html
7.5
KB
-rw-r--r--
2026-06-12 05:08
overrides.html
69.49
KB
-rw-r--r--
2026-06-12 05:08
prefork.html
15.96
KB
-rw-r--r--
2026-06-12 05:08
quickreference.html
194.13
KB
-rw-r--r--
2026-06-12 05:08
worker.html
15.23
KB
-rw-r--r--
2026-06-12 05:08
Save
Rename
<!DOCTYPE html SYSTEM "about:legacy-compat"> <html lang="en"><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta content="width=device-width, initial-scale=1" name="viewport"> <!-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX This file is generated from xml source: DO NOT EDIT XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX --> <title>mod_proxy_html - Apache HTTP Server Version 2.4</title> <link href="../../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet"> <link href="../../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size"> <link href="../../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css"><link rel="stylesheet" type="text/css" href="../../style/css/prettify.css"> <script src="../../style/scripts/prettify.min.js"> </script> <link href="../../images/favicon.png" rel="shortcut icon"></head> <body> <div id="page-header"> <p class="menu"><a href="../mod/index.html">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Report a bug</a></p> <p class="apache">Apache HTTP Server Version 2.4</p> <img alt="" src="../../images/feather.png"></div> <div class="up"><a href="./index.html"><img title="<-" alt="<-" src="../../images/left.gif"></a></div> <div id="path"> <a href="https://www.apache.org/">Apache</a> > <a href="https://httpd.apache.org/">HTTP Server</a> > <a href="https://httpd.apache.org/docs/">Documentation</a> > <a href="../index.html">Version 2.4</a> > <a href="./index.html">Modules</a></div> <div id="page-content"> <div id="preamble"><h1>Apache Module mod_proxy_html</h1> <button aria-label="Toggle language list" class="lang-toggle"><svg xmlns="http://www.w3.org/2000/svg" stroke-width="2" stroke="currentColor" fill="none" viewBox="0 0 24 24" height="16" width="16"><circle r="10" cy="12" cx="12"/><line y2="12" x2="22" y1="12" x1="2"/><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"/></svg></button> <div class="toplang"> <p><span>Available Languages: </span><a href="../../en/mod/mod_proxy_html.html" title="English"> en </a> | <a href="../../fr/mod/mod_proxy_html.html" hreflang="fr" rel="alternate" title="Français"> fr </a></p> </div> <table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Rewrite HTML links in to ensure they are addressable from Clients' networks in a proxy context.</td></tr> <tr><th><a href="module-dict.html#Status">Status:</a></th><td>Base</td></tr> <tr><th><a href="module-dict.html#ModuleIdentifier">Module Identifier:</a></th><td>proxy_html_module</td></tr> <tr><th><a href="module-dict.html#SourceFile">Source File:</a></th><td>mod_proxy_html.c</td></tr> <tr><th><a href="module-dict.html#Compatibility">Compatibility:</a></th><td>Version 2.4 and later</td></tr></table> <h3>Summary</h3> <p>This module provides an output filter to rewrite HTML links in a proxy situation, to ensure that links work for users outside the proxy. It serves the same purpose as Apache's <code class="directive"><a href="../mod/mod_proxy.html#proxypassreverse">ProxyPassReverse</a></code> directive does for HTTP headers, and is an essential component of a reverse proxy.</p> <p>For example, if a company has an application server at <code>appserver.example.com</code> that is only visible from within the company's internal network, and a public webserver <code>www.example.com</code>, they may wish to provide a gateway to the application server at <code>http://www.example.com/appserver/</code>. When the application server links to itself, those links need to be rewritten to work through the gateway. <code class="module"><a href="../mod/mod_proxy_html.html">mod_proxy_html</a></code> serves to rewrite <code><a href="http://appserver.example.com/foo/bar.html">foobar</a></code> to <code><a href="http://www.example.com/appserver/foo/bar.html">foobar</a></code> making it accessible from outside.</p> <p>mod_proxy_html was originally developed at WebÞing, whose extensive <a href="http://apache.webthing.com/mod_proxy_html/">documentation</a> may be useful to users.</p> </div> <div id="quickview"><h3 class="directives">Directives</h3> <ul id="toc"> <li><img alt="" src="../../images/down.gif"> <a href="#proxyhtmlbufsize">ProxyHTMLBufSize</a></li> <li><img alt="" src="../../images/down.gif"> <a href="#proxyhtmlcharsetout">ProxyHTMLCharsetOut</a></li> <li><img alt="" src="../../images/down.gif"> <a href="#proxyhtmldoctype">ProxyHTMLDocType</a></li> <li><img alt="" src="../../images/down.gif"> <a href="#proxyhtmlenable">ProxyHTMLEnable</a></li> <li><img alt="" src="../../images/down.gif"> <a href="#proxyhtmlevents">ProxyHTMLEvents</a></li> <li><img alt="" src="../../images/down.gif"> <a href="#proxyhtmlextended">ProxyHTMLExtended</a></li> <li><img alt="" src="../../images/down.gif"> <a href="#proxyhtmlfixups">ProxyHTMLFixups</a></li> <li><img alt="" src="../../images/down.gif"> <a href="#proxyhtmlinterp">ProxyHTMLInterp</a></li> <li><img alt="" src="../../images/down.gif"> <a href="#proxyhtmllinks">ProxyHTMLLinks</a></li> <li><img alt="" src="../../images/down.gif"> <a href="#proxyhtmlmeta">ProxyHTMLMeta</a></li> <li><img alt="" src="../../images/down.gif"> <a href="#proxyhtmlstripcomments">ProxyHTMLStripComments</a></li> <li><img alt="" src="../../images/down.gif"> <a href="#proxyhtmlurlmap">ProxyHTMLURLMap</a></li> </ul> <h3>Bugfix checklist</h3><ul class="seealso"><li><a href="https://www.apache.org/dist/httpd/CHANGES_2.4">httpd changelog</a></li><li><a href="https://bz.apache.org/bugzilla/buglist.cgi?bug_status=__open__&list_id=144532&product=Apache%20httpd-2&query_format=specific&order=changeddate%20DESC%2Cpriority%2Cbug_severity&component=mod_proxy_html">Known issues</a></li><li><a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2&component=mod_proxy_html">Report a bug</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../../images/up.gif"></a></div> <div class="directive-section"><h2 id="proxyhtmlbufsize"><span id="ProxyHTMLBufSize">ProxyHTMLBufSize</span> Directive <a title="Permanent link" href="#proxyhtmlbufsize" class="permalink">¶</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Sets the buffer size increment for buffering inline scripts and stylesheets.</td></tr> <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyHTMLBufSize <var>bytes</var></code></td></tr> <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ProxyHTMLBufSize 8192</code></td></tr> <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory</td></tr> <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr> <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy_html</td></tr> <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Version 2.4 and later; available as a third-party for earlier 2.x versions</td></tr> </table> <p>In order to parse non-HTML content (stylesheets and scripts) embedded in HTML documents, <code class="module"><a href="../mod/mod_proxy_html.html">mod_proxy_html</a></code> has to read the entire script or stylesheet into a buffer. This buffer will be expanded as necessary to hold the largest script or stylesheet in a page, in increments of <var>bytes</var> as set by this directive.</p> <p>The default is 8192, and will work well for almost all pages. However, if you know you're proxying pages containing stylesheets and/or scripts bigger than 8K (that is, for a single script or stylesheet, NOT in total), it will be more efficient to set a larger buffer size and avoid the need to resize the buffer dynamically during a request. </p> </div> <div class="top"><a href="#page-header"><img alt="top" src="../../images/up.gif"></a></div> <div class="directive-section"><h2 id="proxyhtmlcharsetout"><span id="ProxyHTMLCharsetOut">ProxyHTMLCharsetOut</span> Directive <a title="Permanent link" href="#proxyhtmlcharsetout" class="permalink">¶</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Specify a charset for mod_proxy_html output.</td></tr> <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyHTMLCharsetOut <var>Charset | *</var></code></td></tr> <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ProxyHTMLCharsetOut UTF-8</code></td></tr> <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory</td></tr> <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr> <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy_html</td></tr> <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Version 2.4 and later; available as a third-party for earlier 2.x versions</td></tr> </table> <p>This selects an encoding for mod_proxy_html output. It should not normally be used, as any change from the default <code>UTF-8</code> (Unicode - as used internally by libxml2) will impose an additional processing overhead. The special token <code>ProxyHTMLCharsetOut *</code> will generate output using the same encoding as the input.</p> <p>Note that this relies on <code class="module"><a href="../mod/mod_xml2enc.html">mod_xml2enc</a></code> being loaded.</p> </div> <div class="top"><a href="#page-header"><img alt="top" src="../../images/up.gif"></a></div> <div class="directive-section"><h2 id="proxyhtmldoctype"><span id="ProxyHTMLDocType">ProxyHTMLDocType</span> Directive <a title="Permanent link" href="#proxyhtmldoctype" class="permalink">¶</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Sets an HTML or XHTML document type declaration.</td></tr> <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyHTMLDocType HTML|XHTML [Legacy]<br><strong>OR</strong> <br>ProxyHTMLDocType <var>fpi</var> [SGML|XML]</code></td></tr> <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory</td></tr> <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr> <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy_html</td></tr> <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Version 2.4 and later; available as a third-party for earlier 2.x versions</td></tr> </table> <p>In the first form, documents will be declared as HTML 4.01 or XHTML 1.0 according to the option selected. This option also determines whether HTML or XHTML syntax is used for output. Note that the format of the documents coming from the backend server is immaterial: the parser will deal with it automatically. If the optional second argument is set to <code>Legacy</code>, documents will be declared "Transitional", an option that may be necessary if you are proxying pre-1998 content or working with defective authoring/publishing tools.</p> <p>In the second form, it will insert your own FPI. The optional second argument determines whether SGML/HTML or XML/XHTML syntax will be used.</p> <p>The default is changed to omitting any FPI, on the grounds that no FPI is better than a bogus one. If your backend generates decent HTML or XHTML, set it accordingly.</p> <p>If the first form is used, mod_proxy_html will also clean up the HTML to the specified standard. It cannot fix every error, but it will strip out bogus elements and attributes. It will also optionally log other errors at <code class="directive"><a href="../mod/core.html#loglevel">LogLevel</a></code> Debug.</p> </div> <div class="top"><a href="#page-header"><img alt="top" src="../../images/up.gif"></a></div> <div class="directive-section"><h2 id="proxyhtmlenable"><span id="ProxyHTMLEnable">ProxyHTMLEnable</span> Directive <a title="Permanent link" href="#proxyhtmlenable" class="permalink">¶</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Turns the proxy_html filter on or off.</td></tr> <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyHTMLEnable On|Off</code></td></tr> <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ProxyHTMLEnable Off</code></td></tr> <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory</td></tr> <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr> <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy_html</td></tr> <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Version 2.4 and later; available as a third-party module for earlier 2.x versions.</td></tr> </table> <p>A simple switch to enable or disable the proxy_html filter. If <code class="module"><a href="../mod/mod_xml2enc.html">mod_xml2enc</a></code> is loaded it will also automatically set up internationalisation support.</p> <p>Note that the proxy_html filter will only act on HTML data (Content-Type text/html or application/xhtml+xml) and when the data are proxied. You can override this (at your own risk) by setting the <var>PROXY_HTML_FORCE</var> environment variable.</p> </div> <div class="top"><a href="#page-header"><img alt="top" src="../../images/up.gif"></a></div> <div class="directive-section"><h2 id="proxyhtmlevents"><span id="ProxyHTMLEvents">ProxyHTMLEvents</span> Directive <a title="Permanent link" href="#proxyhtmlevents" class="permalink">¶</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Specify attributes to treat as scripting events.</td></tr> <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyHTMLEvents <var>attribute [attribute ...]</var></code></td></tr> <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory</td></tr> <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr> <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy_html</td></tr> <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Version 2.4 and later; available as a third-party for earlier 2.x versions</td></tr> </table> <p>Specifies one or more attributes to treat as scripting events and apply <code class="directive"><a href="#proxyhtmlurlmap">ProxyHTMLURLMap</a></code>s to where enabled. You can specify any number of attributes in one or more <code class="directive">ProxyHTMLEvents</code> directives.</p> <div class="note"><h3>Requires ProxyHTMLExtended</h3> <p>Scripting events are only processed when <code class="directive"><a href="#proxyhtmlextended">ProxyHTMLExtended</a></code> is set to <var>On</var>. Without it, event attributes are passed through unmodified even if listed in <code class="directive">ProxyHTMLEvents</code>.</p> </div> <p>Normally you'll set this globally. If you set <code class="directive">ProxyHTMLEvents</code> in more than one scope so that one overrides the other, you'll need to specify a complete set in each of those scopes.</p> <p>A default configuration is supplied in <var>proxy-html.conf</var> and defines the events in standard HTML 4 and XHTML 1.</p> </div> <div class="top"><a href="#page-header"><img alt="top" src="../../images/up.gif"></a></div> <div class="directive-section"><h2 id="proxyhtmlextended"><span id="ProxyHTMLExtended">ProxyHTMLExtended</span> Directive <a title="Permanent link" href="#proxyhtmlextended" class="permalink">¶</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Determines whether to fix links in inline scripts, stylesheets, and scripting events.</td></tr> <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyHTMLExtended On|Off</code></td></tr> <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ProxyHTMLExtended Off</code></td></tr> <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory</td></tr> <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr> <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy_html</td></tr> <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Version 2.4 and later; available as a third-party for earlier 2.x versions</td></tr> </table> <p>Set to <code>Off</code>, HTML links are rewritten according to the <code class="directive"><a href="#proxyhtmlurlmap">ProxyHTMLURLMap</a></code> directives, but links appearing in Javascript and CSS are ignored.</p> <p>Set to <code>On</code>, all scripting events (as determined by <code class="directive"><a href="#proxyhtmlevents">ProxyHTMLEvents</a></code>) and embedded scripts or stylesheets are also processed by the <code class="directive"><a href="#proxyhtmlurlmap">ProxyHTMLURLMap</a></code> rules, according to the flags set for each rule. Since this requires more parsing, performance will be best if you only enable it when strictly necessary. </p><p> You'll also need to take care over patterns matched, since the parser has no knowledge of what is a URL within an embedded script or stylesheet. In particular, extended matching of <code>/</code> is likely to lead to false matches. </p> </div> <div class="top"><a href="#page-header"><img alt="top" src="../../images/up.gif"></a></div> <div class="directive-section"><h2 id="proxyhtmlfixups"><span id="ProxyHTMLFixups">ProxyHTMLFixups</span> Directive <a title="Permanent link" href="#proxyhtmlfixups" class="permalink">¶</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fixes for simple HTML errors.</td></tr> <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyHTMLFixups [lowercase] [dospath] [reset]</code></td></tr> <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ProxyHTMLFixups none</code></td></tr> <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory</td></tr> <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr> <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy_html</td></tr> <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Version 2.4 and later; available as a third-party for earlier 2.x versions</td></tr> </table> <p>This directive takes one to three arguments as follows:</p> <ul> <li><code>lowercase</code> Urls are rewritten to lowercase</li> <li><code>dospath</code> Backslashes in URLs are rewritten to forward slashes.</li> <li><code>reset</code> Unset any options set at a higher level in the configuration.</li> </ul> <p>Take care when using these. The fixes will correct certain authoring mistakes, but risk also erroneously fixing links that were correct to start with. Only use them if you know you have a broken backend server.</p> </div> <div class="top"><a href="#page-header"><img alt="top" src="../../images/up.gif"></a></div> <div class="directive-section"><h2 id="proxyhtmlinterp"><span id="ProxyHTMLInterp">ProxyHTMLInterp</span> Directive <a title="Permanent link" href="#proxyhtmlinterp" class="permalink">¶</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enables per-request interpolation of <code class="directive">ProxyHTMLURLMap</code> rules.</td></tr> <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyHTMLInterp On|Off</code></td></tr> <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ProxyHTMLInterp Off</code></td></tr> <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory</td></tr> <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr> <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy_html</td></tr> <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Version 2.4 and later; available as a third-party module for earlier 2.x versions</td></tr> </table> <p>This enables per-request interpolation in <code class="directive"><a href="#proxyhtmlurlmap">ProxyHTMLURLMap</a></code> to- and from- patterns.</p> <p>If interpolation is not enabled, all rules are pre-compiled at startup. With interpolation, they must be re-compiled for every request, which implies an extra processing overhead. It should therefore be enabled only when necessary.</p> </div> <div class="top"><a href="#page-header"><img alt="top" src="../../images/up.gif"></a></div> <div class="directive-section"><h2 id="proxyhtmllinks"><span id="ProxyHTMLLinks">ProxyHTMLLinks</span> Directive <a title="Permanent link" href="#proxyhtmllinks" class="permalink">¶</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Specify HTML elements that have URL attributes to be rewritten.</td></tr> <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyHTMLLinks <var>element attribute [attribute2 ...]</var></code></td></tr> <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory</td></tr> <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr> <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy_html</td></tr> <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Version 2.4 and later; available as a third-party for earlier 2.x versions</td></tr> </table> <p>Specifies elements that have URL attributes that should be rewritten using standard <code class="directive"><a href="#proxyhtmlurlmap">ProxyHTMLURLMap</a></code>s. You will need one <code class="directive">ProxyHTMLLinks</code> directive per element, but it can have any number of attributes.</p> <p>Normally you'll set this globally. If you set <code class="directive">ProxyHTMLLinks</code> in more than one scope so that one overrides the other, you'll need to specify a complete set in each of those scopes.</p> <p>A default configuration is supplied in <var>proxy-html.conf</var> and defines the HTML links for standard HTML 4 and XHTML 1.</p> <div class="example"><h3>Examples from proxy-html.conf</h3><pre class="prettyprint lang-config">ProxyHTMLLinks a href ProxyHTMLLinks area href ProxyHTMLLinks link href ProxyHTMLLinks img src longdesc usemap ProxyHTMLLinks object classid codebase data usemap ProxyHTMLLinks q cite ProxyHTMLLinks blockquote cite ProxyHTMLLinks ins cite ProxyHTMLLinks del cite ProxyHTMLLinks form action ProxyHTMLLinks input src usemap ProxyHTMLLinks head profile ProxyHTMLLinks base href ProxyHTMLLinks script src for</pre> </div> </div> <div class="top"><a href="#page-header"><img alt="top" src="../../images/up.gif"></a></div> <div class="directive-section"><h2 id="proxyhtmlmeta"><span id="ProxyHTMLMeta">ProxyHTMLMeta</span> Directive <a title="Permanent link" href="#proxyhtmlmeta" class="permalink">¶</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Turns on or off extra pre-parsing of metadata in HTML <code><head></code> sections.</td></tr> <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyHTMLMeta On|Off</code></td></tr> <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ProxyHTMLMeta Off</code></td></tr> <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory</td></tr> <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr> <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy_html</td></tr> <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Version 2.4 and later; available as a third-party module for earlier 2.x versions.</td></tr> </table> <p>This turns on or off pre-parsing of metadata in HTML <code><head></code> sections.</p> <p>If not required, turning ProxyHTMLMeta Off will give a small performance boost by skipping this parse step. However, it is sometimes necessary for internationalisation to work correctly.</p> <p><code class="directive">ProxyHTMLMeta</code> has two effects. Firstly and most importantly it enables detection of character encodings declared in the form</p> <pre><meta http-equiv="Content-Type" content="text/html;charset=<var>foo</var>"></pre> <p>or, in the case of an XHTML document, an XML declaration. It is NOT required if the charset is declared in a real HTTP header (which is always preferable) from the backend server, nor if the document is <var>utf-8</var> (unicode) or a subset such as ASCII. You may also be able to dispense with it where documents use a default declared using <code class="directive"><a href="../mod/mod_xml2enc.html#xml2encdefault">xml2EncDefault</a></code>, but that risks propagating an incorrect declaration. A <code class="directive"><a href="#proxyhtmlcharsetout">ProxyHTMLCharsetOut</a></code> can remove that risk, but is likely to be a bigger processing overhead than enabling ProxyHTMLMeta.</p> <p>The other effect of enabling <code class="directive">ProxyHTMLMeta</code> is to parse all <code><meta http-equiv=...></code> declarations and convert them to real HTTP headers, in keeping with the original purpose of this form of the HTML <meta> element.</p> <div class="warning"><h3>Warning</h3> Because ProxyHTMLMeta promotes <strong>all</strong> <code>http-equiv</code> elements to HTTP headers, it is important that you only enable it in cases where you trust the HTML content as much as you trust the upstream server. If the HTML is controlled by bad actors, it will be possible for them to inject arbitrary, possibly malicious, HTTP headers into your server's responses. </div> </div> <div class="top"><a href="#page-header"><img alt="top" src="../../images/up.gif"></a></div> <div class="directive-section"><h2 id="proxyhtmlstripcomments"><span id="ProxyHTMLStripComments">ProxyHTMLStripComments</span> Directive <a title="Permanent link" href="#proxyhtmlstripcomments" class="permalink">¶</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Determines whether to strip HTML comments.</td></tr> <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyHTMLStripComments On|Off</code></td></tr> <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ProxyHTMLStripComments Off</code></td></tr> <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory</td></tr> <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr> <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy_html</td></tr> <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Version 2.4 and later; available as a third-party for earlier 2.x versions</td></tr> </table> <p>This directive will cause mod_proxy_html to strip HTML comments. Note that this will also kill off any scripts or styles embedded in comments (a bogosity introduced in 1995/6 with Netscape 2 for the benefit of then-older browsers, but still in use today). It may also interfere with comment-based processors such as SSI or ESI: be sure to run any of those <em>before</em> mod_proxy_html in the filter chain if stripping comments!</p> </div> <div class="top"><a href="#page-header"><img alt="top" src="../../images/up.gif"></a></div> <div class="directive-section"><h2 id="proxyhtmlurlmap"><span id="ProxyHTMLURLMap">ProxyHTMLURLMap</span> Directive <a title="Permanent link" href="#proxyhtmlurlmap" class="permalink">¶</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Defines a rule to rewrite HTML links</td></tr> <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyHTMLURLMap <var>from-pattern to-pattern [flags] [cond]</var></code></td></tr> <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory</td></tr> <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr> <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy_html</td></tr> <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Version 2.4 and later; available as a third-party module for earlier 2.x versions.</td></tr> </table> <p>This is the key directive for rewriting HTML links. When parsing a document, whenever a link target matches <var>from-pattern</var>, the matching portion will be rewritten to <var>to-pattern</var>, as modified by any flags supplied and by the <code class="directive"><a href="#proxyhtmlextended">ProxyHTMLExtended</a></code> directive. Only the elements specified using the <code class="directive"><a href="#proxyhtmllinks">ProxyHTMLLinks</a></code> directive will be considered as HTML links.</p> <p>The optional third argument may define any of the following <strong>Flags</strong>. Flags are case-sensitive.</p> <dl> <dt>h</dt> <dd><p>Ignore HTML links (pass through unchanged)</p></dd> <dt>e</dt> <dd><p>Ignore scripting events (pass through unchanged)</p></dd> <dt>c</dt> <dd><p>Pass embedded script and style sections through untouched.</p></dd> <dt>L</dt> <dd><p>Last-match. If this rule matches, no more rules are applied (note that this happens automatically for HTML links).</p></dd> <dt>l</dt> <dd><p>Opposite to L. Overrides the one-change-only default behavior with HTML links.</p></dd> <dt>R</dt> <dd><p>Use Regular Expression matching-and-replace. <code>from-pattern</code> is a regexp, and <code>to-pattern</code> a replacement string that may be based on the regexp. Regexp memory is supported: you can use brackets () in the <code>from-pattern</code> and retrieve the matches with $1 to $9 in the <code>to-pattern</code>.</p> <p>If R is not set, it will use string-literal search-and-replace. The logic is <em>starts-with</em> in HTML links, but <em>contains</em> in scripting events and embedded script and style sections. </p> </dd> <dt>x</dt> <dd><p>Use POSIX extended Regular Expressions. Only applicable with R.</p></dd> <dt>i</dt> <dd><p>Case-insensitive matching. Only applicable with R.</p></dd> <dt>n</dt> <dd><p>Disable regexp memory (for speed). Only applicable with R.</p></dd> <dt>s</dt> <dd><p>Line-based regexp matching. Only applicable with R.</p></dd> <dt>^</dt> <dd><p>Match at start only. This applies only to string matching (not regexps) and is irrelevant to HTML links.</p></dd> <dt>$</dt> <dd><p>Match at end only. This applies only to string matching (not regexps) and is irrelevant to HTML links.</p></dd> <dt>V</dt> <dd><p>Interpolate environment variables in <code>to-pattern</code>. A string of the form <code>${varname|default}</code> will be replaced by the value of environment variable <code>varname</code>. If that is unset, it is replaced by <code>default</code>. The <code>|default</code> is optional.</p> <p>NOTE: interpolation will only be enabled if <code class="directive"><a href="#proxyhtmlinterp">ProxyHTMLInterp</a></code> is <var>On</var>.</p> </dd> <dt>v</dt> <dd><p>Interpolate environment variables in <code>from-pattern</code>. Patterns supported are as above.</p> <p>NOTE: interpolation will only be enabled if <code class="directive"><a href="#proxyhtmlinterp">ProxyHTMLInterp</a></code> is <var>On</var>.</p> </dd> </dl> <p>The optional fourth <strong>cond</strong> argument defines a condition that will be evaluated per Request, provided <code class="directive"><a href="#proxyhtmlinterp">ProxyHTMLInterp</a></code> is <var>On</var>. If the condition evaluates FALSE the map will not be applied in this request. If TRUE, or if no condition is defined, the map is applied.</p> <p>A <strong>cond</strong> is evaluated by the <a href="../expr.html">Expression Parser</a>. In addition, the simpler syntax of conditions in mod_proxy_html 3.x for HTTPD 2.0 and 2.2 is also supported.</p> </div> </div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../../en/mod/mod_proxy_html.html" title="English"> en </a> | <a href="../../fr/mod/mod_proxy_html.html" hreflang="fr" rel="alternate" title="Français"> fr </a></p> </div><div id="footer"> <p class="apache">Copyright 2026 The Apache Software Foundation.<br>Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p> <p class="menu"><a href="../mod/index.html">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Report a bug</a></p></div><script><!--//--><![CDATA[//><!-- if (typeof(prettyPrint) !== 'undefined') { prettyPrint(); } var langToggle = document.querySelector('.lang-toggle'); var topLang = document.querySelector('.toplang'); if (langToggle && topLang) { langToggle.addEventListener('click', function() { topLang.classList.toggle('open'); }); } var qv = document.getElementById('quickview'); if (qv) { document.body.appendChild(qv); var qvBtn = document.createElement('button'); qvBtn.className = 'qv-toggle'; qvBtn.setAttribute('aria-label', 'Toggle page navigation'); qvBtn.innerHTML = '☰'; document.body.appendChild(qvBtn); qvBtn.addEventListener('click', function() { var isOpen = qv.classList.toggle('open'); if (isOpen) { qv.style.top = window.scrollY + 10 + 'px'; } }); window.addEventListener('scroll', function() { qv.classList.remove('open'); }); } //--><!]]></script> </body></html>