@mydarck

Как настроить 301 со страницы где в адресе есть кирилица?

Есть страница https://site.com/diagnostika%20%D0%B8, нужно сделать 301 редирект на https://site.com/diagnostika. Но когда для проверке вбиваешь данный адрес в браузер (https://site.com/diagnostika%20%D0%B8), редиректа не происходит, а в адресной строки в зависимости от браузера разные адреса: Firefox - https://site.com/diagnostika и; Chrome - https://sire.com/diagnostika%20и. При копировании URL из адресной строки и последующей вставки из буфера в редактор кода, URL принимает форму - https://site.com/diagnostika%20%D0%B8.
Редиреты пробовал записывать так:
1. Redirect 301 /diagnostika%20%D0%B8 https://site.com/diagnostika
2. RewriteRule ^diagnostika%20%D0%B8$ https://site.com/diagnostika [R=301,L]
  • Вопрос задан
  • 33 просмотра
Решения вопроса 1
@dodo512
В переменной %{THE_REQUEST} строка запроса будет в первоначальном виде /diagnostika%20%D0%B8
RewriteCond %{THE_REQUEST} " /diagnostika%20%D0%B8 "
RewriteRule ^ /diagnostika [R=301,L]


На вход RewriteRule поступает строка уже после декодирования всех %XX.
Так что вместо %20 будет пробел, а вместо %D0%B8 русская буква "и".
RewriteRule "^diagnostika и$" /diagnostika [R=301,L]

Redirect 301 "/diagnostika и" /diagnostika
RedirectMatch 301 "^/diagnostika и$" /diagnostika
Если в правилах используете кириллицу, то файл .htaccess нужно сохранять в кодировке UTF-8 без BOM.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы