Как перейти на русские адреса страниц - пошаговое руководство

[10 ноября 2016 г.]    Российская сборка Magento 2.49.12
Magento 2: модули и услуги
#1 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8884
  • Регистрация: 20.02.2010

26.02.2011 11:30

Откройте раздел «System» → «Configuration» («Система» → «Конфигурация»).

Откройте вкладку «Российская сборка» → «Поисковая оптимизация» → «Адреса страниц».
Прикрепленное изображение: 01.png

Для всех 4-х пунктов установите «да» и сохраните настройки.

Этого достаточно, чтобы новые товары и товарные разделы создавались с кириллическими адресами.

Теперь перенесём на кириллические адреса уже присутствующие в магазине товары и товарные разделы.
При этом прежние адреса также будут поддерживаться: посетители, пришедшие по прежним ссылкам, будут корректно перенаправляться с кодом 301 («Moved Permanently») на новые адреса.
Поисковые роботы поймут, что страница поменяла адрес, и страницы не потеряют ссылочный вес.

Откройте раздел «System» → «Import/Export» → «Dataflow - Advanced Profiles» («Система» → «Импорт/Экспорт» → «Расширенные профили»)

Там создайте новый профиль.
Назовите его «Преобразование адресных ключей для товарных разделов».
В поле «Actions XML» напишите:

если версия Российской сборки Magento не новее 2.43.4:
<action type="df_seo/category_url_key_processor" method="process">
</action> 


если версия Российской сборки Magento новее 2.43.4:
<action type="df_seo/processor_urlKey_category" method="process">
</action> 


Сохраните и запустите профиль.
Результат будет выглядеть примерно так:
Прикрепленное изображение: 02.png

Аналогично, создайте профиль «Преобразование адресных ключей для товаров».
В поле «Actions XML» напишите:

<action type="catalog/convert_adapter_product" method="load">
    <var name="store"><![CDATA[0]]></var>
</action>


<action type="catalog/convert_parser_product" method="unparse">
    <var name="store"><![CDATA[0]]></var>
    <var name="url_field"><![CDATA[0]]></var>
</action>


<action type="dataflow/convert_mapper_column" method="map">
    <var name="map">
        <map name="url_key"><![CDATA[url_key]]></map>
        <map name="sku"><![CDATA[sku]]></map>
        <map name="store"><![CDATA[store]]></map>
        <map name="name"><![CDATA[name]]></map>
    </var>
    <var name="_only_specified">true</var>
</action>


<action type="df_dataflow/convert_mapper_url_key" method="map">
	<var name="df-table-source">export</var>
	<var name="df-table-destination">import</var>
	<var name="adapter">catalog/convert_adapter_product</var>
</action>


Сохраните и выполните профиль.

Затем зайдите в раздел «System» → «Index Management» и нажмите «Reindex Data» в строке «Catalog URL Rewrites».

После этого можете включить кеш и любоваться результатом.

Напомню, что Российская сборка на текущий момент поддерживает Magento 1.4 и 1.5.

#2 Андрей Наумов
  • Группа: Клиент
  • Сообщений: 108
  • Регистрация: 25.07.2011

26.09.2011 15:46

Установил русские названия товаров в браузере (например,
http://atelier.by/платье-чёрное-с-белой-отделкой-120.html
)

Если добавляю товар в избранное, а оттуда "Публикую избранное" (на английском, по-видимому, share), то отправляется письмо на тот адрес, который я впишу. Получатель в письме видит описание этого товара и кнопку "Просмотреть товар". Когда он кликает, он получает ссылку, например:

http://atelier.by/%D0%A0%D1%97%D0%A0%C2%BB%D0%A0%C2%B0%D0%A1%E2%80%9A%D0%A1%D0%8A%D0%A0%C2%B5-%D0%A1%E2%80%A1%D0%A1%E2%80%98%D0%A1%D0%82%D0%A0%D0%85%D0%A0%D1%95%D0%A0%C2%B5-%D0%A1%D0%83-%D0%A0%C2%B1%D0%A0%C2%B5%D0%A0%C2%BB%D0%A0%D1%95%D0%A0%E2%84%96-%D0%A0%D1%95%D0%A1%E2%80%9A%D0%A0%D2%91%D0%A0%C2%B5%D0%A0%C2%BB%D0%A0%D1%94%D0%A0%D1%95%D0%A0%E2%84%96-120.html



Хотя на сайте это звучит как:

http://atelier.by/платье-чёрное-с-белой-отделкой-120.html


Как исправить ошибку кодировки названий товаров, чтобы из письма можно было попасть не на страницу 404, а в карточку товара?

#3 Владимир Барболин
  • Группа: Клиент
  • Сообщений: 44
  • Регистрация: 02.03.2011

29.09.2011 00:07

Тоже вопрос по кодировке.
Если в адресной строке, например:

http: //petrobook.ru/книги/философия/герменевтика-удовольствия-наслаждение-вкусом.html,
то скопировав куда либо, получаем:

http: //petrobook.ru/%D0%BA%D0%BD%D0%B8%D0%B3%D0%B8/%D1%84%D0%B8%D0%BB%D0%BE%D1%81%D0%BE%D1%84%D0%B8%D1%8F/%D0%B3%D0%B5%D1%80%D0%BC%D0%B5%D0%BD%D0%B5%D0%B2%D1%82%D0%B8%D0%BA%D0%B0-%D1%83%D0%B4%D0%BE%D0%B2%D0%BE%D0%BB%D1%8C%D1%81%D1%82%D0%B2%D0%B8%D1%8F-%D0%BD%D0%B0%D1%81%D0%BB%D0%B0%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B2%D0%BA%D1%83%D1%81%D0%BE%D0%BC.html

Пользователям не нравится :(

Добавлю, что это проявляется при использовании Mozilla Firefox. При копировании из IE 8 сбоя кодировки не происходит.

#4 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8884
  • Регистрация: 20.02.2010

29.09.2011 04:19

Это проблема Firefox.
Когда пользователь копирует веб-адрес из адресной строки Firefox в буфер обмена Windows - Firefox замещает символы кириллицы их кодами.
К Magento проблема отношения не имеет: аналогичное поведение вы можете увидеть на сайте Википедии при работе в Firefox.

#5 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8884
  • Регистрация: 20.02.2010

04.10.2011 03:42

Если в процессе и в результате выполнения профиля русские буквы не отображаются - возможно, ваш интерпретатор PHP нестандартно настроен.
Выполните с командной строки операционной системы команду
pcretest -C

Операционная система отобразит на экран некоторую информацию, и там не должно быть строки "No Unicode properties support".
Если эта строка присутствует - вам или вашему администратору нужно пересобрать интерпретатор PHP с ключом "--enable-unicode-properties".
Обычно данная проблема возникает в операционной системе CentOS.

#6 Салтанат Тажибаева
  • Группа: Клиент
  • Сообщений: 35
  • Регистрация: 02.04.2016

15.07.2016 08:04

При попытке запуска программы "Преобразование адресных ключей для товарных разделов"
вышла следующая ошибка

Warning: include(Df/Seo/Model/Processor/UrlKey/Category.php): failed to open stream: No such file or directory in /var/www/...../lib/Varien/Autoload.php on line 94

Поделиться темой: