Редирект 301 с латино-кириллического url на латинский

12
S
На сайте с 04.11.2009
Offline
85
4073

Вопрос следующий - имеются страницы, у которых в url один из символов кириллический, остальные латинские. Хочу сделать по таким ссылкам 301 редирект на латинский url.

Перепробовал все - не получилось.

Может у кого-то есть опыт в решении подобной проблемы. Поделитесь

siv1987
На сайте с 02.04.2009
Offline
427
#1
spunkf:
Перепробовал все - не получилось.

Это простая задача которая вычисляет по регулярным выражением наличие кириллических символов и заменяет их на транслит. Что здесь все можно было попробовать и чтоб ничего не получилось не знаю.. Покажите что вы пробовали.

S
На сайте с 04.11.2009
Offline
85
#2
siv1987:
Это простая задача которая вычисляет по регулярным выражением наличие кириллических символов и заменяет их на транслит. Что здесь все можно было попробовать и чтоб ничего не получилось не знаю.. Покажите что вы пробовали.

регулярные выражения не пробовал. прописывал явно разными способами старый и новый url... по итогу хостер сказал, что редирект не получится. т. к. причина в том, что в url есть латинские и кириллические символы (если бы были только кириллические или только латинские - то все работало б)

siv1987
На сайте с 02.04.2009
Offline
427
#3
spunkf:
что редирект не получится. т. к. причина в том, что в url есть латинские и кириллические символы

Это неправда. Никакого отношение смешанность типов не имеет. Самый примитивный из всех это писать явным способом старый и новый урл. Проблема у кириллицы есть из-за кодировки.

Покажите ваши примеры и каким образом вы писали.

S
На сайте с 04.11.2009
Offline
85
#4
siv1987:
Это неправда. Никакого отношение смешанность типов не имеет. Самый примитивный из всех это писать явным способом старый и новый урл. Проблема у кириллицы есть из-за кодировки.
Покажите ваши примеры и каким образом вы писали.

например:

1.

RewriteCond %{REQUEST_URI} ^/ki%D1%97/$
RewriteRule ^.*$ site.com/kii/? [R=301,L]

2.

redirect 301 /ki%d1%97/ http://site.com/kii/

где "ki%d1%97" - это "kiї"

siv1987
На сайте с 02.04.2009
Offline
427
#5

RewriteRule ^kiї/$ /kii/ [R=301,L]

.htacess сохранить как utf8 без BOM

---------- Добавлено 29.11.2015 в 23:16 ----------

А лучше это делать на уровне cms автоматической замены, и не мучить htaccess кириллицей.

S
На сайте с 04.11.2009
Offline
85
#6
siv1987:
RewriteRule ^kiї/$ /kii/ [R=301,L]

.htacess сохранить как utf8 без BOM

не помогло - 404

siv1987:
А лучше это делать на уровне cms автоматической замены, и не мучить htaccess кириллицей.

ставил некий плагин для таких целей. указывал в нем данные url - не работает)

хотя если указывал url, с которого надо переадресовать, латиницей - все работало

siv1987
На сайте с 02.04.2009
Offline
427
#7
spunkf:
не помогло - 404

Файл должен быть в utf-8.

URL должен быть вызван правильно, с кодированными символами, не напрямую кириллицей - site.ru/ki%D1%97/

Обновить кеш браузера.

PN
На сайте с 22.08.2012
Offline
103
#8

Я бы сделал отдельный файлик redirect.php с примерно следующим содержимым:


<?php
$replace = [
'тест'=>'test'

];
if (in_array(($uri = substr($_SERVER['REQUEST_URI'], 1)), array_keys($replace))
{
header('Location: ' . $replace[$uri]);

exit;

}
?>

и инклуд в index.php:)

файл, конечно же, в UTF-8 без BOM

Мой совет помог? Не скупись! Bitcoin 1Lseddet1o1B6odgXQHbGaWGwRkt1Db8Ef Ethereum 0x450f1a17461e25194B7F9226cDEe70173F39e1e1
siv1987
На сайте с 02.04.2009
Offline
427
#9

А я бы сделал автоматический редирект по транслиту без мэппинга...

L
На сайте с 30.10.2015
Offline
34
#10

spunkf, функция urlencode в помощь

...
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий