Форум пользователей Impera CMS
Impera CMS - отличный движок для лёгкого создания интернет магазина.
Обладает невероятным количеством функций, необходимых в онлайн торговле.

Как правильно использовать Редиректы страниц redirects.txt для русских URL

Следить
Главная
18:08
25 июл
#
?
Владимир написал:

При переезде на Ваш движок использовали данный раздел админки:

привожу пример из записи redirects.txt:

с /фильтры_для_воды/обратный_осмос/обратный_осмос_aquafilter_spure/

на /products/осмос_Aquafilter_Spure 301 редирект

домен http://aqua-climate.com.ua/

Однако переадресация не происходит, как правильно пользоваться? Редиректов сотни....

10:36
26 июл
#
?
301 написал:

За проверкой редиректов на http://urivalet.com заполнять форму

URI: http://aqua-climate.com.ua/фильтры_для_воды/обратный_осмос/обратный_осмос_aquafilter_spure/
HTTP Protocol: HTTP/1.1
User Agent: My Browser
If-Modified-Since:
v Check Server Headers Only

Жмите Submit и смотрите детали

1. REQUESTING: http://aqua-climate.com.ua/фильтры_для_воды/обратный_осмос/обратный_осмос_aquafilter_spure/

GET /фильтры_для_воды/обратный_осмос/обратный_осмос_aquafilter_spure/ HTTP/1.1
Accept: */*
Accept-Encoding: gzip
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Accept-Language: en-us,en;q=0.5
User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)
Host: aqua-climate.com.ua
Connection: Keep-Alive

SERVER RESPONSE: 301 Moved Permanently

Server: nginx admin
Date: Fri, 26 Jul 2013 07:01:57 GMT
Content-Type: text/html; charset="iso-8859-1"
Content-Length: 584
Connection: keep-alive
Location: =?utf-8?B?какая то ху..ня==?=
X-Cache: HIT from Backend
Redirecting to http://aqua-climate.com.ua/catalog/какая то ху..ня ...

2. REQUESTING: http://aqua-climate.com.ua/catalog/какая то ху..ня

GET /catalog/какая то ху..ня HTTP/1.1
Accept: */*
Accept-Encoding: gzip
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Accept-Language: en-us,en;q=0.5
User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)
Host: aqua-climate.com.ua
Connection: Keep-Alive
...........

SERVER RESPONSE: 200 OK

Server: nginx admin
Date: Fri, 26 Jul 2013 07:01:59 GMT
Content-Type: text/html; charset="UTF-8"
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Accept-Encoding
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Set-Cookie: PHPSESSID=1d8ff87638964e3c1fc57f715bf6b0d1;path=/
X-Cache: HIT from Backend
Content-Encoding: gzip

Редирект 301 делает но на косой Url. Слышал сам рекомендации не слать на страницы с рускими словами. Редиректеный Url превращается в ху..ню.

Пробуйте заменить в одном товаре Url на транслит. Заредиректит без проблем.

11:11
26 июл
#
?
Сергей написал:

> Владимир

Я тоже спотыкался о эти грабли. Один хост понимает русские урлы сразу, другой отверткой крутить в конфиге.

Смотри у тебя SERVER RESPONSE: 301 отдается в Content-Type: text/html; charset="iso-8859-1".

ISO/IEC 8859-1 (также известная как ISO 8859-1 и Latin-1) - кодовая страница, предназначенная для западноевропейских языков.

В принципе не знает русских символов. Подкрути конфиг хоста или перейди на траслитные урлы.

13:22
26 июл
#
?
bakar написал:

Русские url гимор. Response 301 должен иметь content-type в utf8 или 1251. Location тем же и еще urlencode.

Дак броузер не всякий на автопилоте рекодит туда сюда 1251 - utf8 - urlencode - urldecode.

Вот один вид ссылки http://demo.imperacms.ru/машинка

Эту броузер рекодит? http://demo.imperacms.ru/%D0%BC%D0%B0%D1%88%D0%B8%D0%BD%D0%BA%D0%B0

И когда получает response 301?

Притом страницы с русскими url на сайте имеют по 2 вида, что не кошерно в seo.

Короче нафик эти проблемы. Цель ваших ссылок на русском?

14:05
26 июл
#
?
Владимир написал:

спасибо за ответы, хостеру отписал, все что в redirects.txt убрал и начал вводить вручную в htaccess

http://aqua-climate.com.ua/htaccess.txt

Всее переадресации до второго уровня работают, а после второго уровня, похоже не ставится слеш между вторым и третьим уровнем. С чем это может быть связано?

14:06
26 июл
#
?
Владимир написал:

Старый сайт имел урлы на русском, выбора нет.

11:28
27 июл
#
?
301 написал:
http://aqua-climate.com.ua/htaccess.txt

Всее переадресации до второго уровня работают, а после второго уровня

Перенесите все правила Redirect 301 /... /... из конца htaccess в начало.

Иначе Url второго уровня перехватывают какие то правила RewriteRule в середине htacces и до Ваших в конце файла дело не доходит.

Старый сайт имел урлы на русском, выбора нет.

Старые Url не важно на руском или туземском. Косяк показан выше по заголвкам с urivalet происходит на новых руских Url.

с /фильтры_для_воды/обратный_осмос/обратный_осмос_aquafilter_spure/

на /products/осмос_Aquafilter_Spure     301 редирект

Правильно было в redirects.txt только слать лучше на /products/osmos_Aquafilter_Spure и по всем товарам транслитнуть Url.

15:35
27 июл
#
?
Владимир написал:

Вернул все переадресации в redirects.txt

Прошу хостинг провайдера поменять SERVER RESPONSE: 301 в utf-8, вдруг поможет

17:23
27 июл
#
Разработчик написал:

Владимир, можете дать отбой провайдеру, чтобы не менял настройки хостинга. Я решил проблему со стороны движка. Теперь будет работать универсально, то есть и под русские адреса страниц.

Эти исправления войдут в следующую версию. Пока же найдите у себя файл http://сайт/objects/Definition.php и на строке 1179 вместо

    header('Location: ' . $url);


напишите

    header('Location: ' . preg_replace_callback('/[а-яё]+/ui',
                                                create_function('$m',
                                                                'return urlencode($m[0]);'),
                                                $url));


Данная правка делает следующее: находит в конечном адресе, куда будет произведен 301 редирект, все русские символы и кодирует их согласно спецификации протокола HTTP, в которой URL не допускается содержать русские символы в явном виде.

09:15
28 июл
#
?
Владимир написал:

После правки сайт неоткрывается - пустой лист.

10:31
28 июл
#
?
Валдис написал:

Это движок с потребностью руками править по каждому случаю?

11:24
01 авг
#
?
Владимир написал:

Транслитнуть целевой url в латиницу тоже не помогло - все равно нет редиректа, ни через htacces ни через redirects.txt

Redirect 301 /catalog/фильтры_для_питьевой_воды/комплектующие_для_фильтров/редуктор_давления_ICMA_247/ /products/reduktor_davleniya_ICMA

открывает пустую страницу

14:35
01 авг
#
Разработчик написал:

# Владимир:   После правки сайт неоткрывается - пустой лист.

В последнем фрагменте кода выше была опечатка, которая устранена. В конце должно быть две скобки, иначе происходила ошибка и белый экран.


# Валдис:   Это движок с потребностью руками править по каждому случаю?

Править руками приходится только в случае, когда пользователи заметили какую-то существенную ошибку, но работают со старой версией движка. В новых версиях такие правки уже учтены.

Найдутся люди, утверждающие глупость подхода, когда разработчик вносит правки в места, где пользователь мог бы обойтись ручными действиями даже без этих правок.

Как пример, русские URL редиректнутых страниц. Ведь пользователь мог бы просто задавать новые адреса сразу с перекодированными русскими символами. То есть русскую часть каждого адреса прогонять вручную через сервисы подобные URLEncode online (это показано на следующем скриншоте).



Разумеется, перед этим пользователь должен был зайти в админпанель на страницу редиректов страниц.



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



Однако на сотне редиректов эта ручная работа превратится в кошмар. Вдобавок пользователю нужно знать какие-то нюансы, скажем что нежелательно перекодировать символы слешей. Так почему же не дать движку размах? Хочет пользователь вручную адреса перекодировать - пожалуйста, хочет забыть о том и писать прямо русскими буквами - движок сам все заметит и перекодирует.

21:31
01 авг
#
?
Владимир написал:

Спасибо за ответы, но приведенные здесь решения не помогли, все осталось так же как и было в начале.

После правки Definition.php сайт работает, но перестал полностью работать redirects.txt

поэтому я снова использую .htaccess (скачать) и вообще не могу понять взаимосвязи один редирект работает другой - нет (в разных местах файла работают все короткие записи а длинные одни работают другие - нет):

Привожу отрывок из абзаца последних записей редирект в .htaccess

  Redirect 301 /фильтры_для_питьевой_воды/комплектующие_для_фильтров/картриджи_и_наполнители/
               /catalog/картриджи_и_засыпки
               не работает

  Redirect 301 /фильтры_для_питьевой_воды/обратный_осмос/картриджи_для_обратного_осмоса/
               /catalog/картриджи_для_осмоса
               работает



  Redirect 301 /фильтры_для_питьевой_воды/обратный_осмос/
               /catalog/системы_обратного_осмоса
               работает

  Redirect 301 /фильтры_для_питьевой_воды/комплектующие_для_фильтров/опции_к_фильтрам/
               /catalog/дополнительные_опции_для_фильтров
               не работает

  Redirect 301 /фильтры_для_питьевой_воды/комплектующие_для_фильтров/фитинги_и_соединения/
               /catalog/фитинги_и_соединения
               не работает



  Redirect 301 /умягчители_воды/
               /catalog/умягчители
               снова работает



  Redirect 301 /фильтры_для_воды/комплектующие_для_фильтров/полифосфат_натрия_500_гр/
               /catalog/наполнители_в_фильтры_и_картриджи
               и опять не работает и так далее...
01:20
02 авг
#
?
Сергей написал:

Я думаю дело в чем. Открой http://aqua-climate.com.ua/умягчители_воды/ на urivalet.com

1. REQUESTING: http://aqua-climate.com.ua/умягчители_воды/
    GET /умягчители_воды/ HTTP/1.1
    ...

Правильно.

SERVER RESPONSE: 301 Moved Permanently
    ...
    Redirecting to http://aqua-climate.com.ua/catalog/N???N??N+??N'?ч?>???special_url=N???N??N+??N'?ч?>??_??????N< ...

Неверно. Должно быть

Redirecting to http://aqua-climate.com.ua/catalog/%D1%83%D0%BC%D1%8F%D0%B3%D1%87%D0%B8%D1%82%D0%B5%D0%BB%D0%B8

Значит строки Redirect 301 в htaccess первый адрес пиши на русском, второй закодированным urlencode.

Еще

Директива Redirect - выполняет внешний редирект посетителя на другой URL.
Синтаксис: Redirect [status] path url

  • status: код возврата
  • path: локальный путь запрашиваемого документа
  • url: полный URL перемещенного документа

У тебя в адресе выше смотри появляется ?special=. Значит на строке редиректа обработка htaccess не прерывается.

Redirect 301 /умягчители_воды/ /catalog/умягчители

Одна из строк ниже этой добавляет в адрес свою ерунду. Лучше пиши так.

RewriteRule ^старый_адрес$ http://%{HTTP_HOST}новый_адрес [R=301,L]

С гарантией прерывания обработки htaccess и редиректом на полный URL.
Русские символы новый_адрес пиши закодированными urlencode.

12:32
02 авг
#
?
bakar написал:

Только посмотгите на этих ценителей гусских адгесов, Абгам!

Они таки газдули топик до непомегных газмегов. Шоб моя мама так жила.

И шо вы думаете? Эти наездники ума пегестанут бодать нагисованые вогота?

Не смешите мою тещу, пгошу вас Абгам кгайне. Смех пгодлевает жизнь.

19:38
02 авг
#
?
Владимир написал:

2 bakar не умничайте тут...

Переименовали все целевые урлы в латиницу (скачать htaccess) и ничего не изменилось - все тоже самое.

Написание ответа

Перед публикацией рекомендуется использовать Предпросмотр, чтобы увидеть конечный вид сообщения.


Обратите внимание! Для противодействия спаму новые посты форума проявляются с задержкой от нескольких минут, пока не пройдут модерацию.


Хостинг для сайта

Хостинг для интернет магазина

Svai.net

Украина
г. Черкассы
5+ Заказать

TutHost.ua

Украина
г. Киев
Заказать

Mirohost.net

Украина
г. Киев
? Заказать

HyperHosting.com.ua

Украина
г. Винница
i подробнее Заказать

Agava.ru

Россия
г. Москва
Заказать

Ukraine.com.ua

Украина
г. Киев
5 Заказать
Импераготовасотрудничатьс провайдерами Важно Учтите Этот список перечисляет лишь некоторых хостинг-провайдеров, у которых существуют специальные тарифные планы для интернет магазинов, а сам список не означает, что другие провайдеры чем-то хуже.

Существующие в списке оценки по 5-бальной шкале не должны учитываться при выборе, так как носят субъективный характер и касаются соотношения цена-качество-скорость только для самых дорогих тарифных планов.

Демо Главная Хронология Соглашение Материалы Контакты