Am struggling with a htaccess problem.
I need to convert all the URLs from uppercase to lowercase. But the query string alone should be the same.
For example,
www.tESTUrl.com/sOMePath/?q=SomeStringHere
should be converted as,
www.testurl.com/somepath/?q=SomeStringHere
Please help to fix this. Thanks in advance.
First You have to add this to your httpd.conf:
RewriteMap lc int:tolower
Then paste the below code into your .htaccess
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} ^[^A-Z]*[A-Z].*
RewriteRule ^ ${lc:%{REQUEST_URI}} [L,R=301]
This code redirct the url like from
www.tESTUrl.com/sOMePath/?q=SomeStringHere
to www.testurl.com/somepath/?q=SomeStringHere
First you need to add this line in your httpd.conf
to define a RewriteMap
for handling lower case conversion:
RewriteMap lc int:tolower
Then add this rule in your root .htaccess:
RewriteEngine On
RewriteRule ^(.*?[A-Z]+.*)$ /${lc:$1} [L,NE,R=302]
This will not affect QUERY_STRING
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With