{"id":1259,"date":"2023-05-09T13:39:48","date_gmt":"2023-05-09T12:39:48","guid":{"rendered":"https:\/\/organicdigital.co\/blog\/?p=1259"},"modified":"2026-05-18T00:36:31","modified_gmt":"2026-05-17T23:36:31","slug":"how-to-convert-and-redirect-uppercase-url-characters-to-lowercase","status":"publish","type":"post","link":"https:\/\/daveashworth.co\/blog\/how-to-convert-and-redirect-uppercase-url-characters-to-lowercase\/","title":{"rendered":"How To: Convert And Redirect Uppercase URL Characters To Lowercase"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">When carrying out an <a href=\"https:\/\/daveashworth.co\/services-and-consultancy\/website-seo-audits-consultant\/\">SEO &amp; Website audit<\/a>, one of the fundamental aims is to avoid duplicate URLs being crawled, and a common issue that I\u2019ve come across over the years is a CMS (or user) that has inadvertently created two versions of the same URL with both upper and lower case characters.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For example, the following URLs lead to the same content but would be treated as two separate URLs:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/daveashworth.co\/blog\/How-To-Convert-And-Redirect-Uppercase-URL-Characters-To-Lowercase\/\">https:\/\/daveashworth.co\/blog\/How-To-Convert-And-Redirect-Uppercase-URL-Characters-To-Lowercase\/<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">and<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/daveashworth.co\/blog\/how-to-convert-and-redirect-uppercase-url-characters-to-lowercase\/\">https:\/\/daveashworth.co\/blog\/how-to-convert-and-redirect-uppercase-url-characters-to-lowercase\/<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A URL that is duplicated due to upper and lower case variations is an issue because search engines treat URLs with different cases as separate URLs, even if they lead to the same content. This can cause search engines to index multiple versions of the same page, which can dilute your website&#8217;s search engine rankings.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Additionally, if external sites link to different versions of your URL with different cases, it can cause link equity to be split between the different versions, further diluting your website&#8217;s authority and ranking potential. Therefore, it&#8217;s important to establish a consistent <a href=\"https:\/\/daveashworth.co\/blog\/how-to-redirect-a-url-to-remove-a-directory-or-folder-name\/\">URL structure<\/a>, preferably using lowercase letters to avoid any potential duplicate content issues.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Best practice would be to avoid any upper case characters and create and serve all links in lower case only.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For some sites, it might be easy to go ahead and convert any URLs and internal links to all lower case, but if this is a CMS or site wide issue, the preferred solution would be to <a href=\"https:\/\/daveashworth.co\/blog\/a-rough-guide-to-30x-redirects\/\">set up redirects rules that 301 redirect<\/a> any URLs containing upper case characters to their lower case equivalent.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Here is how you do it:<\/p>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/daveashworth.co\/blog\/how-to-convert-and-redirect-uppercase-url-characters-to-lowercase\/#Redirect_Uppercase_URL_Characters_To_Lowercase_using_HTACCESS\" >Redirect Uppercase URL Characters To Lowercase using HTACCESS<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/daveashworth.co\/blog\/how-to-convert-and-redirect-uppercase-url-characters-to-lowercase\/#Redirect_Uppercase_URL_Characters_To_Lowercase_using_WordPress_Plugin\" >Redirect Uppercase URL Characters To Lowercase using WordPress Plugin<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/daveashworth.co\/blog\/how-to-convert-and-redirect-uppercase-url-characters-to-lowercase\/#Redirect_Uppercase_URL_Characters_To_Lowercase_with_NGINX\" >Redirect Uppercase URL Characters To Lowercase with NGINX<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/daveashworth.co\/blog\/how-to-convert-and-redirect-uppercase-url-characters-to-lowercase\/#Redirect_Uppercase_URL_Characters_To_Lowercase_with_IIS\" >Redirect Uppercase URL Characters To Lowercase with IIS<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Redirect_Uppercase_URL_Characters_To_Lowercase_using_HTACCESS\"><\/span>Redirect Uppercase URL Characters To Lowercase using HTACCESS<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>RewriteEngine On\nRewriteRule &#91;A-Z] - &#91;E=HASCAPS:TRUE,S=1]\nRewriteRule !&#91;A-Z] - &#91;S=28]\nRewriteRule ^(&#91;^A]*)A(.*)$ $1a$2\nRewriteRule ^(&#91;^B]*)B(.*)$ $1b$2\nRewriteRule ^(&#91;^C]*)C(.*)$ $1c$2\nRewriteRule ^(&#91;^D]*)D(.*)$ $1d$2\nRewriteRule ^(&#91;^E]*)E(.*)$ $1e$2\nRewriteRule ^(&#91;^F]*)F(.*)$ $1f$2\nRewriteRule ^(&#91;^G]*)G(.*)$ $1g$2\nRewriteRule ^(&#91;^H]*)H(.*)$ $1h$2\nRewriteRule ^(&#91;^I]*)I(.*)$ $1i$2\nRewriteRule ^(&#91;^J]*)J(.*)$ $1j$2\nRewriteRule ^(&#91;^K]*)K(.*)$ $1k$2\nRewriteRule ^(&#91;^L]*)L(.*)$ $1l$2\nRewriteRule ^(&#91;^M]*)M(.*)$ $1m$2\nRewriteRule ^(&#91;^N]*)N(.*)$ $1n$2\nRewriteRule ^(&#91;^O]*)O(.*)$ $1o$2\nRewriteRule ^(&#91;^P]*)P(.*)$ $1p$2\nRewriteRule ^(&#91;^Q]*)Q(.*)$ $1q$2\nRewriteRule ^(&#91;^R]*)R(.*)$ $1r$2\nRewriteRule ^(&#91;^S]*)S(.*)$ $1s$2\nRewriteRule ^(&#91;^T]*)T(.*)$ $1t$2\nRewriteRule ^(&#91;^U]*)U(.*)$ $1u$2\nRewriteRule ^(&#91;^V]*)V(.*)$ $1v$2\nRewriteRule ^(&#91;^W]*)W(.*)$ $1w$2\nRewriteRule ^(&#91;^X]*)X(.*)$ $1x$2\nRewriteRule ^(&#91;^Y]*)Y(.*)$ $1y$2\nRewriteRule ^(&#91;^Z]*)Z(.*)$ $1z$2\nRewriteRule &#91;A-Z] - &#91;N]\nRewriteCond %{ENV:HASCAPS} TRUE\nRewriteRule ^\/?(.*) \/$1 &#91;R=301,L]\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Alternatively, you can try this:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>RewriteEngine On\nRewriteCond %{REQUEST_URI} &#91;A-Z]\nRewriteRule ^\/?(.*)$ \/${lowercase:$1} &#91;R=301,L]\n\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Redirect_Uppercase_URL_Characters_To_Lowercase_using_WordPress_Plugin\"><\/span>Redirect Uppercase URL Characters To Lowercase using WordPress Plugin<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">If you don\u2019t have access to the htaccess file via WordPress, then you can use a plugin such as:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/en-gb.wordpress.org\/plugins\/wp-force-lowercase-urls\/\" target=\"_blank\" rel=\"noopener\">WP Force Lowercase URLs<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/en-gb.wordpress.org\/plugins\/lh-force-lowercase-urls\/\" target=\"_blank\" rel=\"noopener\">LH Force Lowercase URLs<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Redirect_Uppercase_URL_Characters_To_Lowercase_with_NGINX\"><\/span>Redirect Uppercase URL Characters To Lowercase with NGINX<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>location \/ {\n  rewrite ^\/?(.*)$ \/${lowercase:$1} &#91;R=301,L]\n}\n\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Redirect_Uppercase_URL_Characters_To_Lowercase_with_IIS\"><\/span>Redirect Uppercase URL Characters To Lowercase with IIS<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Open the IIS Manager.<br><\/li>\n\n\n\n<li>In the left pane, expand the website or application that you want to configure.<br><\/li>\n\n\n\n<li>In the right pane, double-click on the Url Rewrite Module.<br><\/li>\n\n\n\n<li>In the Url Rewrite Module dialog box, click on the Rules tab.<br><\/li>\n\n\n\n<li>Click on the Add Rule button.<br><\/li>\n\n\n\n<li>In the Add Rule dialog box, select the &#8220;Redirect&#8221; rule type.<br><\/li>\n\n\n\n<li>In the URL to Redirect to field, enter the following:<br><br>${lowercase:{R:0}}<br><\/li>\n\n\n\n<li>In the Response Type field, select the &#8220;Permanent&#8221; response type.<br><\/li>\n\n\n\n<li>Click on the OK button.<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>Find out how to redirect a set of URLs which contain upper case characters using  .HTACCESS, NGINX or IIS server configs.<\/p>\n","protected":false},"author":1,"featured_media":1260,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,3],"tags":[],"class_list":["post-1259","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-crawl-rate","category-migrations"],"_links":{"self":[{"href":"https:\/\/daveashworth.co\/blog\/wp-json\/wp\/v2\/posts\/1259","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/daveashworth.co\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/daveashworth.co\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/daveashworth.co\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/daveashworth.co\/blog\/wp-json\/wp\/v2\/comments?post=1259"}],"version-history":[{"count":2,"href":"https:\/\/daveashworth.co\/blog\/wp-json\/wp\/v2\/posts\/1259\/revisions"}],"predecessor-version":[{"id":2127,"href":"https:\/\/daveashworth.co\/blog\/wp-json\/wp\/v2\/posts\/1259\/revisions\/2127"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/daveashworth.co\/blog\/wp-json\/wp\/v2\/media\/1260"}],"wp:attachment":[{"href":"https:\/\/daveashworth.co\/blog\/wp-json\/wp\/v2\/media?parent=1259"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/daveashworth.co\/blog\/wp-json\/wp\/v2\/categories?post=1259"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/daveashworth.co\/blog\/wp-json\/wp\/v2\/tags?post=1259"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}