За последние 24 часа нас посетил 22861 программист и 1259 роботов. Сейчас ищут 718 программистов ...

301 редирект с верхнего на нижний регистр URL

Тема в разделе "PHP для новичков", создана пользователем Abuki, 3 дек 2022.

Метки:
  1. Abuki

    Abuki Новичок

    С нами с:
    3 дек 2022
    Сообщения:
    2
    Симпатии:
    0
    Здравствуйте.
    Есть следующий код, который делает 301 редирект с верхнего на нижний регистр URL

    Код (Text):
    1. if ( $_SERVER['REQUEST_URI'] != strtolower( $_SERVER['REQUEST_URI']) ) {
    2.     header('Location: //'.$_SERVER['HTTP_HOST'] . strtolower($_SERVER['REQUEST_URI']), true, 301);
    3.     exit();
    4. }
    То есть данный PHP код
    из url
    https://sayt.ru/GAMES
    делает 301 редирект на нижний регистр URL
    https://sayt.ru/games

    Но данный код не работает с кириллицей в URL

    ВОПРОС!
    Как сделать так что бы код так же работал с Кириллицей в URL ?

    из URL
    https://sayt.ru/ИГРЫ

    делаел 301 редирект на нижний регистр URL
    https://sayt.ru/игры

    Помогите Пожалуйста!!
     
  2. Abuki

    Abuki Новичок

    С нами с:
    3 дек 2022
    Сообщения:
    2
    Симпатии:
    0
    Решение
    Код (Text):
    1. header('Content-Type: text/html; charset=utf-8');
    2. $str = urldecode($_SERVER['REQUEST_URI']);
    3. if ($str != mb_strtolower($str,  mb_detect_encoding($str))) {
    4.     header('Location: //'.$_SERVER['HTTP_HOST'] . mb_strtolower($str,  mb_detect_encoding($str)), true, 301);
    5.     exit();
    6. }
     
    #2 Abuki, 4 дек 2022
    Последнее редактирование модератором: 4 дек 2022
  3. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.823
    Симпатии:
    736
    Адрес:
    Татарстан
    ну и с точки зрения того-же SEO абсолютно не имеет смысла... так как ссылки регистронезависимы
     
  4. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    отстойное. Нет обратного преобразования в URL-кодировку. В плане SEO все поломали.

    Как мин. у Гоши регистр в адресах имеет значение. Только с кириллицей все сложно. Ее лучше вообще не использовать в адресах станиц, не закрытых от индексации.