[pmwiki-users] Handling canonical URLs (ie don't allow variable case in urls)

Peter Bowers pbowers at pobox.com
Mon Feb 8 14:31:10 CST 2010


On Mon, Feb 8, 2010 at 8:21 PM, Ed W <lists at wildgooses.com> wrote:
> Can someone please give me some suggestions on how to hook into PmWiki
> to make this happen?  Actually, more to the point I'm unsure where the
> case correction is actually happening (eg see URL examples above) -
> given that I'm on a unix based system with case sensitive URLs, it's not
> clear why it's finding files with different cased names?

I believe it's happening in MakePageName().

Note this set of lines:

  SDV($MakePageNamePatterns, array(
    "/'/" => '',			   # strip single-quotes
    "/[^$PageNameChars]+/" => ' ',         # convert everything else to space
    '/((^|[^-\\w])\\w)/e' => "strtoupper('$1')",
    '/ /' => ''));
...
    $group = preg_replace(array_keys($MakePageNamePatterns),
               array_values($MakePageNamePatterns), $m[0]);
    $name = preg_replace(array_keys($MakePageNamePatterns),
              array_values($MakePageNamePatterns), $m[1]);

Note particularly the 3rd element in $MakePageNamePatterns.

You will note that it is not completely case-insensitive; it is only
that pmwiki always capitalizes the 1st char of the group and of the
page.  After the 1st char it is case-sensitive.

-Peter



More information about the pmwiki-users mailing list