Редирект через htaccess и php
RewriteEngine on RewriteBase / RewriteCond %{REQUEST_URI} [A-Z] RewriteCond %{REQUEST_FILENAME} !-s RewriteRule (.*) /rewrite-strtolower.php?rewrite-strtolower-url=$1 [QSA,L]
Создаем файл в корне сайта с названием rewrite-strtolower.php и содержимым
<? if(isset($_GET['rewrite-strtolower-url'])) { $url = $_GET['rewrite-strtolower-url']; unset($_GET['rewrite-strtolower-url']); $params = strtolower(http_build_query($_GET)); if(strlen($params)) { $params = '?' . $params; } header('Location: https://' . $_SERVER['HTTP_HOST'] . '/' . strtolower($url) . $params, true, 301); exit; } header("HTTP/1.0 404 Not Found"); die('Unable to convert the URL to lowercase. You must supply a URL to work upon.'); ?>
Если у вас на сайте стоит плагин Rank Math, то поправьте код в htaccess на такой
RewriteCond %{REQUEST_URI} [A-Z] RewriteCond %{REQUEST_FILENAME} !-s RewriteCond %{REQUEST_URI} !/wp-json.* [NC] RewriteRule (.*) /rewrite-strtolower.php?rewrite-strtolower-url=$1 [QSA,L]
Описание
Данный редирект помогает устранить проблему дублирования контента из-за возможности нахождения букв разного регистра в URL-адресе. Например, 2 адреса: https://site.ru/category/plita и https://site.ru/category/Plita для поисковых систем это две отдельные страницы, несмотря на то, что на них находится одинаковый контент. И это будет в глазах робота дублями, со всеми вытекающими в виде понижения позиций и трафика.
Убирается довольно-таки легко, но в отличие от обычных редиректов, тут надо еще создать дополнительный файл PHP, к которому будет обращаться редирект.
Сразу хотел бы предостеречь, что если у вас есть названия товаров с разным регистром, а-ля https://site.ru/catalog/kassety-VHS, то подобный урл также будет приведен к нижнему регистру, а все ссылки в меню, контенте будут вести через 301 редирект. Поэтому если у вас прям много таких URL’ов, а сайт имеет хорошие позиции и трафик, то я бы задумался, стоит ли игра свеч и возможно лучшим способом будет не трогать то, что работает и приносит трафик.
В других же случаях, изначально лучше подавать в поле алиаса документа значение в нижнем регистре, настраивать редирект и не беспокоиться, что возникнут дубли из-за букв разного регистра.