Здравствуйте. Есть следующий код, который делает 301 редирект с верхнего на нижний регистр URL Код (Text): if ( $_SERVER['REQUEST_URI'] != strtolower( $_SERVER['REQUEST_URI']) ) { header('Location: //'.$_SERVER['HTTP_HOST'] . strtolower($_SERVER['REQUEST_URI']), true, 301); exit(); } То есть данный PHP код из url https://sayt.ru/GAMES делает 301 редирект на нижний регистр URL https://sayt.ru/games Но данный код не работает с кириллицей в URL ВОПРОС! Как сделать так что бы код так же работал с Кириллицей в URL ? из URL https://sayt.ru/ИГРЫ делаел 301 редирект на нижний регистр URL https://sayt.ru/игры Помогите Пожалуйста!!
Решение Код (Text): header('Content-Type: text/html; charset=utf-8'); $str = urldecode($_SERVER['REQUEST_URI']); if ($str != mb_strtolower($str, mb_detect_encoding($str))) { header('Location: //'.$_SERVER['HTTP_HOST'] . mb_strtolower($str, mb_detect_encoding($str)), true, 301); exit(); }
отстойное. Нет обратного преобразования в URL-кодировку. В плане SEO все поломали. Как мин. у Гоши регистр в адресах имеет значение. Только с кириллицей все сложно. Ее лучше вообще не использовать в адресах станиц, не закрытых от индексации.