svn commit: r1934979 - httpd/httpd/trunk/docs/manual/mod

[email protected] Thu, 04 Jun 2026 15:22:55 -0000
Newsgroups gmane.comp.apache.cvs
Message-ID <178058657553.2775549.2915891220408308477@svn03-he-fi>
Author: rbowen
Date: Thu Jun  4 15:22:55 2026
New Revision: 1934979

Log:
docs: Rewrite AllowOverride Options= warning

The existing note about implicit disabling of Options was difficult
to parse. Rewrite as a type="warning" note with:
- Clear statement that the restriction controls enabling, not disabling
- Explanation of absolute vs relative (+/-) Options syntax
- Concrete example showing how inherited options get implicitly disabled

BZ#70099

Modified:
   httpd/httpd/trunk/docs/manual/mod/core.xml

Modified: httpd/httpd/trunk/docs/manual/mod/core.xml
==============================================================================
--- httpd/httpd/trunk/docs/manual/mod/core.xml	Thu Jun  4 11:52:55 2026	(r1934978)
+++ httpd/httpd/trunk/docs/manual/mod/core.xml	Thu Jun  4 15:22:55 2026	(r1934979)
@@ -479,14 +479,35 @@ NoDecode option available in 2.3.12 and
       followed by a comma-separated list, without spaces, of options that
       may be set using the <directive module="core">Options</directive> directive.
 
-      <note><title>Implicit disabling of Options</title>
-      <p>Even though the list of options that may be used in .htaccess files
-         can be limited with this directive, as long as any <directive
-         module="core">Options</directive> directive is allowed any
-         other inherited option can be disabled by using the non-relative
-         syntax.  In other words, this mechanism cannot force a specific option
-         to remain <em>set</em> while allowing any others to be set.
-      </p></note>
+      <note type="warning"><title>Implicit disabling of Options</title>
+      <p>This restriction only controls which options a
+         <code>.htaccess</code> file may <em>enable</em>. It does not
+         prevent inherited options from being <em>disabled</em>.</p>
+
+      <p>When a <directive module="core">Options</directive> directive
+         in <code>.htaccess</code> uses absolute syntax (without
+         <code>+</code> or <code>-</code> prefixes), it <em>replaces</em>
+         the entire inherited option set. Any previously active options
+         not listed are implicitly turned off&mdash;even options that are
+         not in the <code>AllowOverride</code> permitted list.</p>
+
+      <p>For example, if the server configuration sets:</p>
+      <highlight language="config">
+Options Indexes FollowSymLinks ExecCGI
+AllowOverride Options=Indexes
+      </highlight>
+      <p>and a <code>.htaccess</code> file contains:</p>
+      <highlight language="config">
+Options Indexes
+      </highlight>
+      <p>then <code>FollowSymLinks</code> and <code>ExecCGI</code> are
+         implicitly disabled for that directory, even though the
+         <code>AllowOverride</code> line only permits setting
+         <code>Indexes</code>.</p>
+
+      <p>In short, this mechanism cannot force a specific option to
+         remain <em>set</em> while allowing any others to be set.</p>
+      </note>
 
       <highlight language="config">
       AllowOverride Options=Indexes,MultiViews