Okay, by default my urls structure is in mixed case, e.g domain.com/Green-Blue-Widgets.html and Google for some reasons is indexing two versions of my urls domain.com/Green-Blue-Widgets.html and domain.com/green-blue-widgets.html . Now i want to 301 redirect all urls to lowercase, but my internal navigation is all mixed case e.g the category page domain.com/Green has all the products listed in the page with mixed case.
I know its bad programming, but i will really appreciate if any one can look into the matter for me and usggest a solution.
Redirect the incorrectly cased URL requests to all lower case and fix the internal navigation. Do this one section of a time for the site.
Add code to the start of the PHP (or whatever) scripts that run the site to compare the URL request with what is in the database for that page. Issue a redirect if it is not an exact match. This retains your mixed case site but fixes non-valid requests.
As per solution 2 but add canonical tag to the page header instead of redirecting.