How to force Views (or whole Drupal) to lowercase page paths? Is it possible to force Views to always lowercase URL paths? Here is a detailed example. I'm using contextual filters to filter by node field (field's name is country). Here are the node examples:

Node title: Madrid | country: spain
Node title: Rome | country: italy


Country name values are intentionally lowercased. Now I create a country contextual filter with this path: results/%. These are the results:

Path: results/spain
Result: Madrid

Path: results/Spain
Result: Madrid

Path: Results/Spain
Result: Madrid


I want the results to be available only on these paths:

results/spain

results/italy


Is there a way to force Views to convert all of the paths to lowercase letters? If it's not possible in Views, is there a way to make Drupal convert all of the URL requests to lowercase paths?
This is untested, but I believe you can use a hook_url_outbound_alter() for this, since I think Views URLs still get run through url() when they get generated:

function MYMODULE_url_outbound_alter(&amp;$path, &amp;$options, $original_path) {
  $path = drupal_strtolower($path);
}


(Updates to address some comments post acceptance.)

This should update URLs that get generated by Views, and will prevent the uppercased ones from getting out into the wild.

Drupal 7 is case-insensitive with regards to inbound URL routing.  However, I am not 100% sure this is always the case with Views arguments being pulled from the URL.  I suspect that the base part of the path w/o the argument is being matched by Drupal as case-insensitive, and the argument is matching case-insensitive because of database collation being case-insensive.