Can Craft convert requested url to lowercase? I think this is normally done with .htaccess or httpd.conf, but it's a bit cumbersome on shared hosting, and it seems like a simple trick for a CMS...

Can Craft convert requested URLs to lowercase? So if the slug for the page is /meditate, but someone types in /Meditate that Craft delivers /meditate page?

I don't quite understand how one uses customAsciiCharMappings -- it seems unrelated to this.
Depending on how your server is configured, this may be a non-issue. I just checked several sites, and they all work fine with mixed-case URLs.

If that's not the case with your site, you'll need to implement a simple plugin, which checks the URL, converts it to lowercase, and redirects the visitor (if required).

Hopefully it goes without saying that it would be much better to do this in your .htaccess or httpd.conf.

Caveats dispensed with, here's an example plugin.

&lt;?php namespace Craft;

class PoorMansRedirectPlugin extends BasePlugin
{
    // Standard plugin methods omitted for brevity.


    /**
     * Runs before *every* request.
     */
    public function init()
    {
        $path = craft()-&gt;request-&gt;getPath();
        $lowerPath = strtolower($path);

        // If the current path is not lowercased, redirect.
        if ($path !== $lowerPath) {
            $url = UrlHelper::getUrl($lowerPath);
            craft()-&gt;request-&gt;redirect($url);
        }
    }
}


Just to be clear, this is a really bare-bones solution.

It doesn't make any distinction between site URLs and admin URLs, doesn't account for query strings, will break POST requests, and a lot more besides.

As such it is in no way production ready, and would require quite a bit of additional work to account for all of these edge (and not so edge) cases. See my previous note regarding .htaccess being vastly preferable.