You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by rb...@apache.org on 2026/04/29 16:05:21 UTC

svn commit: r1933506 - in httpd/httpd/trunk/docs/manual: . howto mod programs ssl

Author: rbowen
Date: Wed Apr 29 16:05:21 2026
New Revision: 1933506

Log:
docs: Convert RFC links to use new <rfc> tag; update draft-ietf-tls-esni to RFC 9849

Modified:
   httpd/httpd/trunk/docs/manual/caching.xml
   httpd/httpd/trunk/docs/manual/compliance.xml
   httpd/httpd/trunk/docs/manual/env.xml
   httpd/httpd/trunk/docs/manual/glossary.xml
   httpd/httpd/trunk/docs/manual/howto/cgi.xml
   httpd/httpd/trunk/docs/manual/howto/http2.xml
   httpd/httpd/trunk/docs/manual/logs.xml
   httpd/httpd/trunk/docs/manual/mod/core.xml
   httpd/httpd/trunk/docs/manual/mod/mod_auth_basic.xml
   httpd/httpd/trunk/docs/manual/mod/mod_cache.xml
   httpd/httpd/trunk/docs/manual/mod/mod_cgi.xml
   httpd/httpd/trunk/docs/manual/mod/mod_data.xml
   httpd/httpd/trunk/docs/manual/mod/mod_mime.xml
   httpd/httpd/trunk/docs/manual/mod/mod_mime_magic.xml
   httpd/httpd/trunk/docs/manual/mod/mod_proxy.xml
   httpd/httpd/trunk/docs/manual/mod/mod_proxy_fcgi.xml
   httpd/httpd/trunk/docs/manual/mod/mod_rewrite.xml
   httpd/httpd/trunk/docs/manual/mod/mod_ssl.xml
   httpd/httpd/trunk/docs/manual/new_features_2_6.xml
   httpd/httpd/trunk/docs/manual/programs/htdigest.xml
   httpd/httpd/trunk/docs/manual/ssl/ssl_intro.xml

Modified: httpd/httpd/trunk/docs/manual/caching.xml
==============================================================================
--- httpd/httpd/trunk/docs/manual/caching.xml	Wed Apr 29 15:34:35 2026	(r1933505)
+++ httpd/httpd/trunk/docs/manual/caching.xml	Wed Apr 29 16:05:21 2026	(r1933506)
@@ -49,8 +49,7 @@
             in the cache, and mod_cache aims to honor all of the various HTTP
             headers and options that control the cacheability of content
             as described in
-            <a href="https://datatracker.ietf.org/doc/html/rfc2616#section-13">Section
-            13 of RFC2616</a>.
+            <rfc section="13">2616</rfc>.
             <module>mod_cache</module>
             is aimed at both simple and complex caching configurations, where
             you are dealing with proxied content, dynamic local content or
@@ -105,8 +104,7 @@
 
     <p>The HTTP protocol contains built in support for an in-line caching
     mechanism
-    <a href="https://datatracker.ietf.org/doc/html/rfc2616#section-13">
-    described by section 13 of RFC2616</a>, and the
+    <rfc section="13">2616</rfc>, and the
     <module>mod_cache</module> module can be used to take advantage of
     this.</p>
 
@@ -159,8 +157,7 @@
     </dl>
 
     <p>Full details of how HTTP caching works can be found in
-    <a href="https://datatracker.ietf.org/doc/html/rfc2616#section-13">
-    Section 13 of RFC2616</a>.</p>
+    <rfc section="13">2616</rfc>.</p>
 
     <section>
       <title>Interaction with the Server</title>
@@ -324,8 +321,7 @@
 
       <p>The full definition of which responses can be cached by an HTTP
       cache is defined in
-      <a href="https://datatracker.ietf.org/doc/html/rfc2616#section-13.4">
-      RFC2616 Section 13.4 Response Cacheability</a>, and can be summed up as
+      <rfc section="13.4">2616</rfc> (Response Cacheability), and can be summed up as
       follows:</p>
 
       <ol>

Modified: httpd/httpd/trunk/docs/manual/compliance.xml
==============================================================================
--- httpd/httpd/trunk/docs/manual/compliance.xml	Wed Apr 29 15:34:35 2026	(r1933505)
+++ httpd/httpd/trunk/docs/manual/compliance.xml	Wed Apr 29 16:05:21 2026	(r1933506)
@@ -137,8 +137,7 @@
     the ETag of the response, the server should return
     <code>412 Precondition Failed</code>. Full details of how to handle an
     <code>If-Match</code> header can be found in
-    <a href="https://datatracker.ietf.org/doc/html/rfc2616#section-14.24">
-    RFC2616 section 14.24</a>.</dd>
+    <rfc section="14.24">2616</rfc>.</dd>
 
     <dt><code>If-None-Match</code></dt>
     <dd>If the provided ETag in the <code>If-None-Match</code> header matches
@@ -146,24 +145,21 @@
     <code>304 Not Modified</code> for GET/HEAD requests, or
     <code>412 Precondition Failed</code> for other methods. Full details of how
     to handle an <code>If-None-Match</code> header can be found in
-    <a href="https://datatracker.ietf.org/doc/html/rfc2616#section-14.26">
-    RFC2616 section 14.26</a>.</dd>
+    <rfc section="14.26">2616</rfc>.</dd>
 
     <dt><code>If-Modified-Since</code></dt>
     <dd>If the provided date in the <code>If-Modified-Since</code> header is
     older than the <code>Last-Modified</code> header of the response, the server
     should return <code>304 Not Modified</code>. Full details of how to handle an
     <code>If-Modified-Since</code> header can be found in
-    <a href="https://datatracker.ietf.org/doc/html/rfc2616#section-14.25">
-    RFC2616 section 14.25</a>.</dd>
+    <rfc section="14.25">2616</rfc>.</dd>
 
     <dt><code>If-Unmodified-Since</code></dt>
     <dd>If the provided date in the <code>If-Modified-Since</code> header is
     newer than the <code>Last-Modified</code> header of the response, the server
     should return <code>412 Precondition Failed</code>. Full details of how to
     handle an <code>If-Unmodified-Since</code> header can be found in
-    <a href="https://datatracker.ietf.org/doc/html/rfc2616#section-14.28">
-    RFC2616 section 14.28</a>.</dd>
+    <rfc section="14.28">2616</rfc>.</dd>
 
     <dt><code>If-Range</code></dt>
     <dd>If the provided ETag or date in the <code>If-Range</code> header matches
@@ -171,8 +167,7 @@
     is present, the server should return
     <code>206 Partial Response</code>. Full details of how to handle an
     <code>If-Range</code> header can be found in
-    <a href="https://datatracker.ietf.org/doc/html/rfc2616#section-14.27">
-    RFC2616 section 14.27</a>.</dd>
+    <rfc section="14.27">2616</rfc>.</dd>
 
     </dl>
 
@@ -202,8 +197,7 @@
 
     <p>There are a number of ways of determining the length of a response
     body, described in full in
-    <a href="https://datatracker.ietf.org/doc/html/rfc2616#section-4.4">
-    RFC2616 section 4.4 Message Length</a>.</p>
+    <rfc section="4.4">2616</rfc> (Message Length).</p>
 
     <p>When the <code>Content-Length</code> header is present, the size of
     the body is declared at the start of the response. If this information
@@ -256,8 +250,7 @@
 
     <p>The media type of the body is placed in the <code>Content-Type</code>
     header, and the format of the header is described in full in
-    <a href="https://datatracker.ietf.org/doc/html/rfc2616#section-3.7">
-    RFC2616 section 3.7 Media Types</a>.</p>
+    <rfc section="3.7">2616</rfc> (Media Types).</p>
 
     <p>A syntactically valid content type might look as follows:</p>
 
@@ -302,8 +295,7 @@ Content-Type:
 
     <p>There are a number of ways of determining the length of a response
     body, described in full in
-    <a href="https://datatracker.ietf.org/doc/html/rfc2616#section-4.4">
-    RFC2616 section 4.4 Message Length</a>.</p>
+    <rfc section="4.4">2616</rfc> (Message Length).</p>
 
     <p>When the <code>Content-Length</code> header is present, the size of
     the body is declared at the start of the response. HTTP/1.1 defines the
@@ -373,8 +365,7 @@ Content-Type:
 
     <p>Full details of how a freshness lifetime is calculated is described in
     full in
-    <a href="https://datatracker.ietf.org/doc/html/rfc2616#section-13.2">
-    RFC2616 section 13.2 Expiration Model</a>.</p>
+    <rfc section="13.2">2616</rfc> (Expiration Model).</p>
 
     <p>During the freshness lifetime, a cache does not need to contact the
     origin server at all, it can simply pass the cached content as is back
@@ -412,11 +403,9 @@ Content-Type:
 
     <p>Full details of how content may be declared uncacheable is described in
     full in
-    <a href="https://datatracker.ietf.org/doc/html/rfc2616#section-14.9.1">
-    RFC2616 section 14.9.1 What is Cacheable</a>, and within the definition
+    <rfc section="14.9.1">2616</rfc> (What is Cacheable), and within the definition
     for the <code>Pragma</code> header in
-    <a href="https://datatracker.ietf.org/doc/html/rfc2616#section-14.32">
-    RFC2616 section 14.32 Pragma</a>.</p>
+    <rfc section="14.32">2616</rfc> (Pragma).</p>
 
     <p>Most specifically, should any of the following header combinations
     exist in the response headers, the response will be rejected:</p>
@@ -453,11 +442,9 @@ Content-Type:
     <code>Last-Modified</code> header.</p>
 
     <p>The <code>ETag</code> header is described in full in
-    <a href="https://datatracker.ietf.org/doc/html/rfc2616#section-14.19">
-    RFC2616 section 14.19 Etag</a>, and the <code>Last-Modified</code> header
+    <rfc section="14.19">2616</rfc> (Etag), and the <code>Last-Modified</code> header
     is described in full in
-    <a href="https://datatracker.ietf.org/doc/html/rfc2616#section-14.29">
-    RFC2616 section 14.29 Last-Modified</a>.</p>
+    <rfc section="14.29">2616</rfc> (Last-Modified).</p>
 
     <p>In addition to being checked present, the headers are checked for
     syntax.</p>
@@ -488,8 +475,7 @@ Content-Type:
     forbidden by the administrator.</p>
 
     <p>The <code>Vary</code> header is described in full in
-    <a href="https://datatracker.ietf.org/doc/html/rfc2616#section-14.44">
-    RFC2616 section 14.44 Vary</a>.</p>
+    <rfc section="14.44">2616</rfc> (Vary).</p>
 
     <p>Some client provided headers, such as <code>User-Agent</code>,
     can contain thousands or millions of combinations of values over a period

Modified: httpd/httpd/trunk/docs/manual/env.xml
==============================================================================
--- httpd/httpd/trunk/docs/manual/env.xml	Wed Apr 29 15:34:35 2026	(r1933505)
+++ httpd/httpd/trunk/docs/manual/env.xml	Wed Apr 29 16:05:21 2026	(r1933506)
@@ -117,8 +117,7 @@
         Apache configuration and passed from the shell, CGI scripts and
         SSI pages are provided with a set of environment variables
         containing meta-information about the request as required by
-	the <a href="https://datatracker.ietf.org/doc/html/rfc3875">CGI
-        specification</a>.</p>
+	the CGI specification (<rfc>3875</rfc>).</p>
 
     </section>
     <section id="caveats">
@@ -288,9 +287,7 @@
   <section id="cgi">
     <title>CGI environment variables</title>
 
-    <p>The <a
-    href="https://datatracker.ietf.org/doc/html/rfc3875#section-4.1"
-    >CGI specification</a> defines a number of environment
+    <p>The CGI specification (<rfc section="4.1">3875</rfc>) 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
     part of passing information between the browser and the

Modified: httpd/httpd/trunk/docs/manual/glossary.xml
==============================================================================
--- httpd/httpd/trunk/docs/manual/glossary.xml	Wed Apr 29 15:34:35 2026	(r1933505)
+++ httpd/httpd/trunk/docs/manual/glossary.xml	Wed Apr 29 16:05:21 2026	(r1933506)
@@ -122,8 +122,7 @@
         Gateway Interface</a> <a name="cgi" id="cgi">(CGI)</a></dt>
     <dd>A standard definition for an interface between a web server and an
       external program that allows the external program to service requests.
-      There is an <a href="https://datatracker.ietf.org/doc/html/rfc3875">Informational
-      RFC</a> which covers the specifics.<br />
+      There is an Informational RFC (<rfc>3875</rfc>) which covers the specifics.<br />
       See: <a href="howto/cgi.html">Dynamic Content with CGI</a>
     </dd>
 

Modified: httpd/httpd/trunk/docs/manual/howto/cgi.xml
==============================================================================
--- httpd/httpd/trunk/docs/manual/howto/cgi.xml	Wed Apr 29 15:34:35 2026	(r1933505)
+++ httpd/httpd/trunk/docs/manual/howto/cgi.xml	Wed Apr 29 16:05:21 2026	(r1933506)
@@ -479,8 +479,7 @@ print "Hello, World.";
       <p>These variables are available to the CGI programmer, and
       are half of the story of the client-server communication. The
       complete list of required variables is at
-      <a href="https://datatracker.ietf.org/doc/html/rfc3875">Common Gateway
-      Interface RFC</a>.</p>
+      Common Gateway Interface RFC (<rfc>3875</rfc>).</p>
 
       <p>This simple Perl CGI program will display all of the
       environment variables that are being passed around. Two
@@ -572,8 +571,7 @@ foreach my $key (keys %ENV) {
     <title>For more information</title>
 
     <p>The current CGI specification is available in the
-    <a href="https://datatracker.ietf.org/doc/html/rfc3875">Common Gateway
-    Interface RFC</a>.</p>
+    Common Gateway Interface RFC (<rfc>3875</rfc>).</p>
 
     <p>When you post a question about a CGI problem that you're
     having, whether to a mailing list, or to a newsgroup, make sure

Modified: httpd/httpd/trunk/docs/manual/howto/http2.xml
==============================================================================
--- httpd/httpd/trunk/docs/manual/howto/http2.xml	Wed Apr 29 15:34:35 2026	(r1933505)
+++ httpd/httpd/trunk/docs/manual/howto/http2.xml	Wed Apr 29 16:05:21 2026	(r1933506)
@@ -41,7 +41,7 @@
     you already know HTTP/1, you know 95% about HTTP/2 as well.</p>
     <p>There has been a lot written about HTTP/2 and how it works. The most normative is, of course,
     its <rfc>7540</rfc> 
-    (<a href="https://datatracker.ietf.org/doc/html/rfc7540">also available in more readable formatting, YMMV</a>).
+    (also available in more readable formatting, YMMV (<rfc>7540</rfc>)).
     So, there you'll find the nuts and bolts.</p>
     <p>But, as RFC do, it's not really a good thing to read first. It's better to first understand
     <em>what</em> a thing wants to do and then read the RFC about <em>how</em> it is done. A much
@@ -53,8 +53,8 @@
         <li>HTTP/2 is a <strong>binary protocol</strong>, 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 <a href="https://http2.github.io/faq/#why-is-http2-binary">question</a>.</li>
         <li><strong>h2</strong> is HTTP/2 over TLS (protocol negotiation via ALPN).</li>
         <li><strong>h2c</strong> is HTTP/2 over TCP.</li>
-        <li>A <strong>frame</strong> 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 <a href="https://datatracker.ietf.org/doc/html/rfc7540"> section</a>.</li>
-        <li>A <strong>stream</strong> 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 <a href="https://datatracker.ietf.org/doc/html/rfc7540"> section</a>.</li>
+        <li>A <strong>frame</strong> 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</rfc>.</li>
+        <li>A <strong>stream</strong> 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</rfc>.</li>
         <li>HTTP/2 is able to run <strong>multiple streams</strong> 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).</li>
     </ul>
   </section>
@@ -129,7 +129,7 @@ Protocols http/1.1
     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
     long debugging sessions! If you want to be sure about the cipher suite to choose please avoid
-    the ones listed in the <a href="https://datatracker.ietf.org/doc/html/rfc7540">HTTP/2 TLS reject list</a>.</p>
+    the ones listed in the HTTP/2 TLS reject list (<rfc>7540</rfc>).</p>
     </note>
     <p>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 

Modified: httpd/httpd/trunk/docs/manual/logs.xml
==============================================================================
--- httpd/httpd/trunk/docs/manual/logs.xml	Wed Apr 29 15:34:35 2026	(r1933505)
+++ httpd/httpd/trunk/docs/manual/logs.xml	Wed Apr 29 16:05:21 2026	(r1933506)
@@ -363,9 +363,7 @@ CustomLog "logs/access_log" common
         beginning in 2), a redirection (codes beginning in 3), an
         error caused by the client (codes beginning in 4), or an
         error in the server (codes beginning in 5). The full list of
-        possible status codes can be found in the <a
-        href="https://datatracker.ietf.org/doc/html/rfc2616">HTTP
-        specification</a> (RFC2616 section 10).</dd>
+        possible status codes can be found in the HTTP specification (<rfc>2616</rfc>) (RFC2616 section 10).</dd>
 
         <dt><code>2326</code> (<code>%b</code>)</dt>
 

Modified: httpd/httpd/trunk/docs/manual/mod/core.xml
==============================================================================
--- httpd/httpd/trunk/docs/manual/mod/core.xml	Wed Apr 29 15:34:35 2026	(r1933505)
+++ httpd/httpd/trunk/docs/manual/mod/core.xml	Wed Apr 29 16:05:21 2026	(r1933506)
@@ -1281,10 +1281,8 @@ EnableSendfile On
 
 <usage>
     <p>This directive changes the rules applied to the HTTP Request Line
-    (<a href="https://datatracker.ietf.org/doc/html/rfc7230#section-3.1.1"
-      >RFC 7230 &sect;3.1.1</a>) and the HTTP Request Header Fields
-    (<a href="https://datatracker.ietf.org/doc/html/rfc7230#section-3.2"
-      >RFC 7230 &sect;3.2</a>), which are now applied by default or using
+    (<rfc section="3.1.1">7230</rfc>) and the HTTP Request Header Fields
+    (<rfc section="3.2">7230</rfc>), which are now applied by default or using
     the <code>Strict</code> option. Due to legacy modules, applications or
     custom user-agents which must be deprecated the <code>Unsafe</code>
     option has been added to revert to the legacy behaviors.</p>
@@ -1303,13 +1301,10 @@ EnableSendfile On
       <p>Prior to the introduction of this directive, the Apache HTTP Server
       request message parsers were tolerant of a number of forms of input
       which did not conform to the protocol.
-      <a href="https://datatracker.ietf.org/doc/html/rfc7230#section-9.4"
-        >RFC 7230 &sect;9.4 Request Splitting</a> and
-      <a href="https://datatracker.ietf.org/doc/html/rfc7230#section-9.5"
-        >&sect;9.5 Response Smuggling</a> call out only two of the potential
+      <rfc section="9.4">7230</rfc> (Request Splitting) and
+      <rfc section="9.5">7230</rfc> (Response Smuggling) call out only two of the potential
       risks of accepting non-conformant request messages, while
-      <a href="https://datatracker.ietf.org/doc/html/rfc7230#section-3.5"
-           >RFC 7230 &sect;3.5</a> "Message Parsing Robustness" identify the
+      <rfc section="3.5">7230</rfc> "Message Parsing Robustness" identify the
       risks of accepting obscure whitespace and request message formatting. 
       As of the introduction of this directive, all grammar rules of the
       specification are enforced in the default <code>Strict</code> operating
@@ -1342,8 +1337,7 @@ EnableSendfile On
     </dd>
     <dt>RegisteredMethods|LenientMethods</dt>
     <dd>
-      <p><a href="https://datatracker.ietf.org/doc/html/rfc7231#section-4.1"
-           >RFC 7231 &sect;4.1</a> "Request Methods" "Overview" requires that
+      <p><rfc section="4.1">7231</rfc> "Request Methods" "Overview" requires that
       origin servers shall respond with a HTTP 501 status code when an
       unsupported method is encountered in the request line.
       This already happens when the <code>LenientMethods</code> option is used,
@@ -1369,12 +1363,11 @@ EnableSendfile On
       </dd>
       <dt>Allow0.9|Require1.0</dt>
       <dd>
-      <p><a href="https://datatracker.ietf.org/doc/html/rfc2616#section-19.6"
-           >RFC 2616 &sect;19.6</a> "Compatibility With Previous Versions" had
+      <p><rfc section="19.6">2616</rfc> "Compatibility With Previous Versions" had
       encouraged HTTP servers to support legacy HTTP/0.9 requests. RFC 7230
       supersedes this with "The expectation to support HTTP/0.9 requests has
       been removed" and offers additional comments in 
-      <a href="https://datatracker.ietf.org/doc/html/rfc7230#appendix-A"
+      <a href="https://www.rfc-editor.org/rfc/rfc7230#appendix-A"
         >RFC 7230 Appendix A</a>. The <code>Require1.0</code> option allows
       the user to remove support of the default <code>Allow0.9</code> option's
       behavior.</p>

Modified: httpd/httpd/trunk/docs/manual/mod/mod_auth_basic.xml
==============================================================================
--- httpd/httpd/trunk/docs/manual/mod/mod_auth_basic.xml	Wed Apr 29 15:34:35 2026	(r1933505)
+++ httpd/httpd/trunk/docs/manual/mod/mod_auth_basic.xml	Wed Apr 29 16:05:21 2026	(r1933506)
@@ -213,8 +213,7 @@ Digest Authentication was in force inste
     Authentication case, the value associated with each stored username
     must be an encrypted string composed from the username, realm name,
     and password.  (See
-    <a href="https://datatracker.ietf.org/doc/html/rfc2617#section-3.2.2.2">
-    RFC 2617, Section 3.2.2.2</a> for more details on the format used
+    <rfc section="3.2.2.2">2617</rfc> for more details on the format used
     for this encrypted string.)</p>
 
     <p>As a consequence of the difference in the stored values between

Modified: httpd/httpd/trunk/docs/manual/mod/mod_cache.xml
==============================================================================
--- httpd/httpd/trunk/docs/manual/mod/mod_cache.xml	Wed Apr 29 15:34:35 2026	(r1933505)
+++ httpd/httpd/trunk/docs/manual/mod/mod_cache.xml	Wed Apr 29 16:05:21 2026	(r1933506)
@@ -46,7 +46,7 @@
     stale or expired content is still fresh, and can represent a significant
     performance boost when the origin server supports <strong>conditional
     requests</strong> by honoring the
-    <a href="https://datatracker.ietf.org/doc/html/rfc2616#section-14.26">If-None-Match</a>
+    If-None-Match (<rfc section="14.26">2616</rfc>)
     HTTP request header. Content is only regenerated from scratch when the content
     has changed, and not when the cached entry expires.</p>
 
@@ -75,9 +75,9 @@
 
     <p>Under normal operation, <module>mod_cache</module> will respond to
     and can be controlled by the
-    <a href="https://datatracker.ietf.org/doc/html/rfc2616#section-14.9">Cache-Control</a>
+    Cache-Control (<rfc section="14.9">2616</rfc>)
     and
-    <a href="https://datatracker.ietf.org/doc/html/rfc2616#section-14.32">Pragma</a>
+    Pragma (<rfc section="14.32">2616</rfc>)
     headers sent from a client in a request, or from a
     server within a response. Under exceptional circumstances,
     <module>mod_cache</module> can be configured to override these headers
@@ -91,12 +91,12 @@
     by <module>mod_cache</module> when the
     <directive module="mod_cache">CacheLock</directive> directive is suitably
     configured. Such responses will contain a
-    <a href="https://datatracker.ietf.org/doc/html/rfc2616#section-14.46">Warning</a>
+    Warning (<rfc section="14.46">2616</rfc>)
     HTTP header with a 110 response code. RFC 2616 also allows a cache to return
     stale data when the attempt made to refresh the stale data returns an
     error 500 or above, and this behavior is supported by default by
     <module>mod_cache</module>. Such responses will contain a
-    <a href="https://datatracker.ietf.org/doc/html/rfc2616#section-14.46">Warning</a>
+    Warning (<rfc section="14.46">2616</rfc>)
     HTTP header with a 111 response code.</p>
 
     <p><module>mod_cache</module> requires the services of one or more

Modified: httpd/httpd/trunk/docs/manual/mod/mod_cgi.xml
==============================================================================
--- httpd/httpd/trunk/docs/manual/mod/mod_cgi.xml	Wed Apr 29 15:34:35 2026	(r1933505)
+++ httpd/httpd/trunk/docs/manual/mod/mod_cgi.xml	Wed Apr 29 16:05:21 2026	(r1933506)
@@ -58,11 +58,11 @@
 <seealso><directive module="mod_mime">AddHandler</directive></seealso>
 <seealso><a href="../suexec.html">Running CGI programs under different
     user IDs</a></seealso>
-<seealso><a href="https://datatracker.ietf.org/doc/html/rfc3875">CGI Specification</a></seealso>
+<seealso>CGI Specification (<rfc>3875</rfc>)</seealso>
 
 <section id="env"><title>CGI Environment variables</title>
     <p>The server will set the CGI environment variables as described
-    in the <a href="https://datatracker.ietf.org/doc/html/rfc3875">CGI specification</a>,
+    in the CGI specification (<rfc>3875</rfc>),
     with the following provisions:</p>
 
     <dl>

Modified: httpd/httpd/trunk/docs/manual/mod/mod_data.xml
==============================================================================
--- httpd/httpd/trunk/docs/manual/mod/mod_data.xml	Wed Apr 29 15:34:35 2026	(r1933505)
+++ httpd/httpd/trunk/docs/manual/mod/mod_data.xml	Wed Apr 29 16:05:21 2026	(r1933506)
@@ -31,7 +31,7 @@
 
 <summary>
     <p>This module provides the ability to convert a response into
-    an <a href="https://datatracker.ietf.org/doc/html/rfc2397">RFC2397 data URL</a>.
+    an <rfc>2397</rfc> (data URL).
     </p>
 
     <p>Data URLs can be embedded inline within web pages using something

Modified: httpd/httpd/trunk/docs/manual/mod/mod_mime.xml
==============================================================================
--- httpd/httpd/trunk/docs/manual/mod/mod_mime.xml	Wed Apr 29 15:34:35 2026	(r1933505)
+++ httpd/httpd/trunk/docs/manual/mod/mod_mime.xml	Wed Apr 29 16:05:21 2026	(r1933506)
@@ -162,10 +162,9 @@ module="mod_mime_magic">MimeMagicFile</d
     designed for transmitting a binary file in an ASCII (text)
     format.</p>
 
-    <p>The <a href="https://datatracker.ietf.org/doc/html/rfc2616">HTTP/1.1
-    RFC</a>, section 14.11 puts it this way:</p>
+    <p>The HTTP/1.1 RFC (<rfc>2616</rfc>), section 14.11 puts it this way:</p>
 
-    <blockquote cite="https://datatracker.ietf.org/doc/html/rfc2616">
+    <blockquote cite="https://www.rfc-editor.org/rfc/rfc2616">
       <p>The Content-Encoding entity-header field is used as a modifier to
       the media-type. When present, its value indicates what additional
       content codings have been applied to the entity-body, and thus what

Modified: httpd/httpd/trunk/docs/manual/mod/mod_mime_magic.xml
==============================================================================
--- httpd/httpd/trunk/docs/manual/mod/mod_mime_magic.xml	Wed Apr 29 15:34:35 2026	(r1933505)
+++ httpd/httpd/trunk/docs/manual/mod/mod_mime_magic.xml	Wed Apr 29 16:05:21 2026	(r1933506)
@@ -294,7 +294,7 @@ using the specified magic file</descript
     <li><strong>Not RFC-compliant:</strong> Standards documents consistently
     recommend against setting Content-Encoding for files that are already
     compressed (such as .zip or .gz files). See
-    <a href="https://datatracker.ietf.org/doc/html/rfc9110#name-content-encoding">RFC 9110</a>.</li>
+    <a href="https://www.rfc-editor.org/rfc/rfc9110#name-content-encoding">RFC 9110</a>.</li>
 
     <li><strong>Breaks content integrity:</strong> When Content-Encoding is set,
     most HTTP clients will decompress the file before writing it to disk. This

Modified: httpd/httpd/trunk/docs/manual/mod/mod_proxy.xml
==============================================================================
--- httpd/httpd/trunk/docs/manual/mod/mod_proxy.xml	Wed Apr 29 15:34:35 2026	(r1933505)
+++ httpd/httpd/trunk/docs/manual/mod/mod_proxy.xml	Wed Apr 29 16:05:21 2026	(r1933506)
@@ -1292,7 +1292,7 @@ ProxyPass "/example" "http://backend.exa
         <td><p>Protocol accepted by <module>mod_proxy_http</module> or
         <module>mod_proxy_wstunnel</module> for the HTTP Upgrade mechanism
         upon negotiation by the HTTP client/browser (per
-        <a href="https://datatracker.ietf.org/doc/html/rfc9110#name-upgrade">RFC 9110 - Upgrade</a>).
+        <a href="https://www.rfc-editor.org/rfc/rfc9110#name-upgrade">RFC 9110 - Upgrade</a>).
         See the <a href="#protoupgrade">Protocol Upgrade</a> note below</p>
     </td></tr>
     <tr><td>mapping</td>

Modified: httpd/httpd/trunk/docs/manual/mod/mod_proxy_fcgi.xml
==============================================================================
--- httpd/httpd/trunk/docs/manual/mod/mod_proxy_fcgi.xml	Wed Apr 29 15:34:35 2026	(r1933505)
+++ httpd/httpd/trunk/docs/manual/mod/mod_proxy_fcgi.xml	Wed Apr 29 16:05:21 2026	(r1933506)
@@ -345,8 +345,7 @@ ProxyFCGISetEnvIf "reqenv('PATH_TRANSLAT
     <highlight language="config">ProxyFCGISetEnvIf true VARIABLE</highlight>
 
   The CGI/1.1 specification
-  <a href="https://datatracker.ietf.org/doc/html/rfc3875#section-4.1">does not
-  distinguish</a> between a variable with an empty value and a variable that
+  does not distinguish (<rfc section="4.1">3875</rfc>) between a variable with an empty value and a variable that
   does not exist. However, many CGI and FastCGI implementations distinguish (or
   allow scripts to distinguish) between the two. The choice of which to use is
   dependent upon your implementation and your reason for modifying the variable.

Modified: httpd/httpd/trunk/docs/manual/mod/mod_rewrite.xml
==============================================================================
--- httpd/httpd/trunk/docs/manual/mod/mod_rewrite.xml	Wed Apr 29 15:34:35 2026	(r1933505)
+++ httpd/httpd/trunk/docs/manual/mod/mod_rewrite.xml	Wed Apr 29 16:05:21 2026	(r1933506)
@@ -597,8 +597,7 @@ AliasMatch "^/myapp" "/opt/myapp-1.2.3"
                 Most are documented in the 
                 <a href="../expr.html#vars">Expressions doc</a>, in the
                 <a href="../env.html">Environment Variables doc</a>,
-                or the <a href="https://datatracker.ietf.org/doc/html/rfc3875">CGI
-                specification</a>.</p>
+                or the CGI specification (<rfc>3875</rfc>).</p>
 
                 <p>SERVER_NAME and SERVER_PORT depend on the values of
                 <directive module="core">UseCanonicalName</directive> and

Modified: httpd/httpd/trunk/docs/manual/mod/mod_ssl.xml
==============================================================================
--- httpd/httpd/trunk/docs/manual/mod/mod_ssl.xml	Wed Apr 29 15:34:35 2026	(r1933505)
+++ httpd/httpd/trunk/docs/manual/mod/mod_ssl.xml	Wed Apr 29 16:05:21 2026	(r1933506)
@@ -970,8 +970,7 @@ key is encrypted, the pass phrase dialog
 
 <p>As an alternative to storing certificates and private keys in
 files, a certificate identifier can be used to identify a certificate
-stored in a token.  Currently, only <a
-href="https://datatracker.ietf.org/doc/html/rfc7512">PKCS#11 URIs</a> are
+stored in a token.  Currently, only PKCS#11 URIs (<rfc>7512</rfc>) are
 recognized as certificate identifiers, and can be used in conjunction
 with the OpenSSL <code>pkcs11</code> engine or provider.  If <directive
 module="mod_ssl">SSLCertificateKeyFile</directive> is omitted, the
@@ -1070,7 +1069,7 @@ key file.</p>
 
 <p>As an alternative to storing private keys in files, a key
 identifier can be used to identify a private key stored in a
-token.  Currently, only <a href="https://datatracker.ietf.org/doc/html/rfc7512">PKCS#11 URIs</a> are recognized as private key
+token.  Currently, only PKCS#11 URIs (<rfc>7512</rfc>) are recognized as private key
 identifiers, and can be used in conjunction with the OpenSSL
 <code>pkcs11</code> engine or provider.</p>
 
@@ -2618,11 +2617,11 @@ SSLCryptoDevice ubsec
 
 <p>
 With OpenSSL 3.0 or later, if no engine is specified but the key or certificate
-is specified using a <a href="https://datatracker.ietf.org/doc/html/rfc7512">PKCS#11 URIs</a>
+is specified using a PKCS#11 URIs (<rfc>7512</rfc>)
 then it is tried to load the key and certificate from an OpenSSL provider.
 The OpenSSL provider to use must be defined and configured in the OpenSSL config file,
 and it must support the <a href="https://docs.openssl.org/3.0/man7/provider-storemgmt/">STORE method</a>
-for <a href="https://datatracker.ietf.org/doc/html/rfc7512">PKCS#11 URIs</a>.
+for PKCS#11 URIs (<rfc>7512</rfc>).
 </p>
 </usage>
 </directivesynopsis>
@@ -3185,7 +3184,7 @@ httpd -t -D DUMP_SSL_POLICIES
 
 <p>
 ECH is specified in
-    <a href="https://datatracker.ietf.org/doc/draft-ietf-tls-esni/">draft-ietf-tls-esni</a>
+    <rfc>9849</rfc>
 httpd supports ECH "shared-mode" where the httpd instance does the
 ECH decryption and also hosts both the ECH `public-name` and `backend` web
 sites.  

Modified: httpd/httpd/trunk/docs/manual/new_features_2_6.xml
==============================================================================
--- httpd/httpd/trunk/docs/manual/new_features_2_6.xml	Wed Apr 29 15:34:35 2026	(r1933505)
+++ httpd/httpd/trunk/docs/manual/new_features_2_6.xml	Wed Apr 29 16:05:21 2026	(r1933506)
@@ -38,7 +38,7 @@
       <dd>The <code>ContentDigest</code> directive and support for the the
           <code>Content-MD5</code> header has been removed from the server,
           corresponding with the removal of this header from
-          <a href="https://datatracker.ietf.org/doc/html/rfc7231#appendix-B">
+          <a href="https://www.rfc-editor.org/rfc/rfc7231#appendix-B">
           RFC7231 Hypertext Transfer Protocol (HTTP/1.1): Semantics and
           Content.</a></dd>
 

Modified: httpd/httpd/trunk/docs/manual/programs/htdigest.xml
==============================================================================
--- httpd/httpd/trunk/docs/manual/programs/htdigest.xml	Wed Apr 29 15:34:35 2026	(r1933505)
+++ httpd/httpd/trunk/docs/manual/programs/htdigest.xml	Wed Apr 29 16:05:21 2026	(r1933506)
@@ -58,8 +58,7 @@
 
     <dt><code><var>realm</var></code></dt>
     <dd>The realm name to which the user name belongs. See
-    <a href="https://datatracker.ietf.org/doc/html/rfc2617#section-3.2.1">
-    http://tools.ietf.org/html/rfc2617#section-3.2.1</a> for more details.
+    <rfc section="3.2.1">2617</rfc> for more details.
     </dd>
 
     <dt><code><var>username</var></code></dt>

Modified: httpd/httpd/trunk/docs/manual/ssl/ssl_intro.xml
==============================================================================
--- httpd/httpd/trunk/docs/manual/ssl/ssl_intro.xml	Wed Apr 29 15:34:35 2026	(r1933505)
+++ httpd/httpd/trunk/docs/manual/ssl/ssl_intro.xml	Wed Apr 29 16:05:21 2026	(r1933506)
@@ -649,8 +649,7 @@ href="https://en.wikipedia.org/wiki/PKCS
 <dt><a id="MIME" name="MIME">[MIME]</a></dt>
 <dd>N. Freed, N. Borenstein, <q>Multipurpose Internet Mail Extensions
 (MIME) Part One: Format of Internet Message Bodies</q>, RFC2045.
-See for instance <a href="https://datatracker.ietf.org/doc/html/rfc2045"
->http://tools.ietf.org/html/rfc2045</a>.</dd>
+See for instance <rfc>2045</rfc>.</dd>
 
 <dt><a id="SSL3" name="SSL3">[SSL3]</a></dt>
 <dd>Alan O. Freier, Philip Karlton, Paul C. Kocher, <q>The SSL Protocol
@@ -658,23 +657,19 @@ Version 3.0</q>, 1996. See <rfc>6101</rf
 
 <dt><a id="TLS1" name="TLS1">[TLS1]</a></dt>
 <dd>Tim Dierks, Christopher Allen, <q>The TLS Protocol Version 1.0</q>,
-1999. See <a href="https://datatracker.ietf.org/doc/html/rfc2246"
->http://ietf.org/rfc/rfc2246.txt</a>.</dd>
+1999. See <rfc>2246</rfc>.</dd>
 
 <dt><a id="TLS11" name="TLS11">[TLS11]</a></dt>
 <dd><q>The TLS Protocol Version 1.1</q>,
-2006. See <a href="https://datatracker.ietf.org/doc/html/rfc4346"
->http://tools.ietf.org/html/rfc4346</a>.</dd>
+2006. See <rfc>4346</rfc>.</dd>
 
 <dt><a id="TLS12" name="TLS12">[TLS12]</a></dt>
 <dd><q>The TLS Protocol Version 1.2</q>,
-2008. See <a href="https://datatracker.ietf.org/doc/html/rfc5246"
->http://tools.ietf.org/html/rfc5246</a>.</dd>
+2008. See <rfc>5246</rfc>.</dd>
 
 <dt><a id="TLS13" name="TLS13">[TLS13]</a></dt>
 <dd><q>The Transport Layer Security (TLS) Protocol Version 1.3</q>,
-2018. See <a href="https://datatracker.ietf.org/doc/html/rfc8446"
->https://tools.ietf.org/html/rfc8446</a>.</dd>
+2018. See <rfc>8446</rfc>.</dd>
 </dl>
 </section>
 <!-- /references -->