.htaccess - 301 redirect but change URL to all lower case in apache -
i'd set 301 redirect in apache change case of original address before redirecting. example if enters:
www.website1.com/userofmixedcase
it should forward to
www.website2.com/userofmixedcase
would redirect or need rewrite? i'm not fussed individual page forwarding (eg www.website2.com/userofmixedcase/whatever.php
) - www.website1.com/whatever
.
thank in advance, richard
you need define rewrite map using apache's internal tolower function. can done in vhost or server config, , result in error if try put these directives in htaccess file:
rewriteengine on rewritemap lowercase int:tolower
then, in htaccess file, can use above rewrite rules have. redirect rules must before whatever rules may have routing:
# check lower case version of uri different unchanged uri rewritecond %{request_uri} ^/([^/]+)$ rewritecond ${lowercase:%1}::%1 !^(.*)::\1$ rewriterule ^/?(.+)$ http://www.website2.com/${lowercase:$1} [l,r=301]
this redirect request http://www.website1.com/userofmixedcase
http://www.website2.com/userofmixedcase
, replacing url in browser's address bar 1 that's lowercase. note won't affect urls multiple path nodes, e.g. http://www.website1.com/some/pathname/userofmixedcase
. if want affect requests including ones have multiple paths/subdirectories, need change line:
rewritecond %{request_uri} ^/([^/]+)$
to:
rewritecond %{request_uri} ^/(.+)$
Comments
Post a Comment