There were two changes to mod_speling in trunk in 2013/2014. They were
motivated by PR 44221: although the docs claim that using "CheckCaseOnly
On" "limits the action of the spelling correction to lower/upper case
changes. Other potential corrections are not performed." In fact
mod_speling still checks for content files which only differ in the file
name suffix form the request URI. That part of the code was contained in
an #ifdef but active by default. The changes introduce a new directive
that allows to control that part of the behavior by configuration.
Now the question: it seems to me that due to the change being done in
two steps, now the directive CheckCaseOnly and the new one
CheckBasenameMatch are not independent of each other. Setting
CheckBasenameMatch to "On" only enables the suffix handling if
CheckCaseOnly if "Off". For improved compatibility and for better
orthogonality I would suggest to keep the features separate from each
other, ie.:
Index: modules/mappers/mod_speling.c
===================================================================
--- modules/mappers/mod_speling.c (revision 1731929)
+++ modules/mappers/mod_speling.c (working copy)
@@ -326,8 +326,7 @@
* because it won't find anything matching that spelling.
* With the extension-munging, it would locate "foobar.html".
*/
- else if ((cfg->check_case_only == 0) &&
- (cfg->check_basename_match == 1)) {
+ else if (cfg->check_basename_match == 1) {
/*
* Okay... we didn't find anything. Now we take out the
hard-core
* power tools. There are several cases here. Someone
might have
That way the old changes could be ported back to 2.4 with the only
change that the default for CheckBasenameMatch would be "On" in 2.4 for
compatibility reasons and "Off" in trunk to satisfy the principle of
least surprise.
Regards,
Rainer