Home htaccess 301 redirect uppercase to lowercase producing multiple trailing slashes
Reply: 0

htaccess 301 redirect uppercase to lowercase producing multiple trailing slashes

Johnny Jekyll
1#
Johnny Jekyll Published in 2017-11-14 13:27:17Z

I am trying to add a 301 to redirect uppercase to lowercase characters in htaccess. It works but for every uppercase letter that is converted, a trailing slash is added to the end of the url e.g. /aBOUt/ ends up as /about////

It may be conflicting with my other 301 redirects http to https and www to non-www. See the code below. Thank you for helping.

    <IfModule mod_rewrite.c>
    RewriteEngine On

    # If there are caps, set HASCAPS to true and skip next rule
    RewriteRule [A-Z] - [E=HASCAPS:TRUE,S=1]

    # Skip this entire section if no uppercase letters in requested URL
    RewriteRule ![A-Z] - [S=28]

    # Replace single occurance of CAP with cap, then process next Rule.
    RewriteRule ^([^A]*)A(.*)$ $1a$2
    RewriteRule ^([^B]*)B(.*)$ $1b$2
    RewriteRule ^([^C]*)C(.*)$ $1c$2
    RewriteRule ^([^D]*)D(.*)$ $1d$2
    RewriteRule ^([^E]*)E(.*)$ $1e$2
    RewriteRule ^([^F]*)F(.*)$ $1f$2
    RewriteRule ^([^G]*)G(.*)$ $1g$2
    RewriteRule ^([^H]*)H(.*)$ $1h$2
    RewriteRule ^([^I]*)I(.*)$ $1i$2
    RewriteRule ^([^J]*)J(.*)$ $1j$2
    RewriteRule ^([^K]*)K(.*)$ $1k$2
    RewriteRule ^([^L]*)L(.*)$ $1l$2
    RewriteRule ^([^M]*)M(.*)$ $1m$2
    RewriteRule ^([^N]*)N(.*)$ $1n$2
    RewriteRule ^([^O]*)O(.*)$ $1o$2
    RewriteRule ^([^P]*)P(.*)$ $1p$2
    RewriteRule ^([^Q]*)Q(.*)$ $1q$2
    RewriteRule ^([^R]*)R(.*)$ $1r$2
    RewriteRule ^([^S]*)S(.*)$ $1s$2
    RewriteRule ^([^T]*)T(.*)$ $1t$2
    RewriteRule ^([^U]*)U(.*)$ $1u$2
    RewriteRule ^([^V]*)V(.*)$ $1v$2
    RewriteRule ^([^W]*)W(.*)$ $1w$2
    RewriteRule ^([^X]*)X(.*)$ $1x$2
    RewriteRule ^([^Y]*)Y(.*)$ $1y$2
    RewriteRule ^([^Z]*)Z(.*)$ $1z$2

    # If there are any uppercase letters, restart at very first RewriteRule in file.
    RewriteRule [A-Z] - [N]

    RewriteCond %{ENV:HASCAPS} TRUE
    RewriteRule ^/?(.*) /$1 [R=301,L]


    # Redirect http to https
    RewriteCond %{HTTPS} !=on
    RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$
    RewriteCond %{REQUEST_URI} !^/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
    RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/[0-9a-zA-Z_-]+$
    RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

    # Redirect any tld and www to non-www.com
    RewriteCond %{HTTP_HOST} !^yourdomain\.co.uk$ [NC]
    RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$
    RewriteCond %{REQUEST_URI} !^/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
    RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/[0-9a-zA-Z_-]+$
    RewriteRule ^(.*) https://yourdomain.co.uk/$1 [R=301,NE,L]

    </IfModule>
You need to login account before you can post.

About| Privacy statement| Terms of Service| Advertising| Contact us| Help| Sitemap|
Processed in 0.322757 second(s) , Gzip On .

© 2016 Powered by mzan.com design MATCHINFO