2016-04-06 0:00 GMT+02:00 Rich Bowen <rbo...@rcbowen.com>: > I haven't gotten around to fixing yet, but I (or someone) will annotate > accordingly. >
I created a patch for the "upgrading" section containing examples and suggestions, let me know your thoughts (also from Hildegard Meier would be great). I haven't just written "please don't mix the directives" but also added some examples to clarify why, not sure though if everybody likes this approach or not so I am proposing it first :) Thanks! Luca
Index: docs/manual/upgrading.xml =================================================================== --- docs/manual/upgrading.xml (revision 1738101) +++ docs/manual/upgrading.xml (working copy) @@ -137,6 +137,19 @@ although for compatibility with old configurations, the new module <module>mod_access_compat</module> is provided.</p> + <note><title>Mixing old and new directives</title> + <p>Mixing old directives like <directive + module="mod_access_compat">Order</directive>, <directive + module="mod_access_compat">Allow</directive> or <directive + module="mod_access_compat">Deny</directive> with new ones like + <directive + module="mod_authz_core">Require</directive> is technically possible + but discouraged. <module>mod_access_compat</module> was created to support + configurations containing only old directives to facilitate the 2.4 upgrade. + Please check the examples below to get a better idea about issues that might arise. + </p> + </note> + <p>Here are some examples of old and new ways to do the same access control.</p> @@ -187,6 +200,57 @@ Require host example.org </highlight> </example> + + <p>In the following example, mixing old and new directives leads to + unexpected results.</p> + + <example> + <title>Mixing old and new configuration directives: NOT WORKING AS EXPECTED</title> + <highlight language="config"> +<Directory "/"> + AllowOverride None + Order deny,allow + Deny from all +</Directory> + +<Location "/server-status"> + SetHandler server-status + Require 127.0.0.1 +</Location> + +access.log - GET /var/www/html/server-status 403 127.0.0.1 +error.log - AH01797: client denied by server configuration: /var/www/html/server-status + </highlight> + </example> + <p>Why httpd denies access to servers-status even if the configuration seems to allow it? + Because <module>mod_access_compat</module> directives take precedence + over <module>mod_authz_host</module> one in this configuration + <a href="sections.html#merging">merge</a> scenario.</p> + + <p>This example conversely works as expected:</p> + + <example> + <title>Mixing old and new configuration directives: WORKING AS EXPECTED</title> + <highlight language="config"> +<Directory "/"> + AllowOverride None + Require all denied +</Directory> + +<Location "/server-status"> + SetHandler server-status + Order deny,allow + Deny from all + Allow From 127.0.0.1 +</Location> + +access.log - GET /var/www/html/server-status 200 127.0.0.1 + </highlight> + </example> + <p>So even if mixing configuration is still + possible, please try to avoid it when upgrading: either keep old directives and then migrate + to the new ones on a later stage or just migrate everything in bulk. + </p> </section> </section>
--------------------------------------------------------------------- To unsubscribe, e-mail: docs-unsubscr...@httpd.apache.org For additional commands, e-mail: docs-h...@httpd.apache.org