Длинные кириллические url magento

donvictorio

Хранитель порядка
Регистрация
28 Янв 2010
Сообщения
872
Реакции
849
правила url_rewrite в магенто хранятся в колонке`request_path`, тип varchar(255), а это всего около 50 кириллических символов, чего не хватает для полноценной работы. транслитерация в движке работает хреново, вследствие чего seo составляющая url падает на нет.

подумал о том, чтобы изменить тип колонки на text, но не умею составить запрос с key, который ограничит индекс, а без него mysql говорит ошибкой
Код:
BLOB/TEXT column 'request_path' used in key specification without a key length

сам запрос на создание таблицы core_url_rewrite:

Код:
CREATE TABLE `core_url_rewrite` (
  `url_rewrite_id` int(10) unsigned not null auto_increment,
  `store_id` smallint(5) unsigned not null default '0',
  `id_path` varchar(255),
  `request_path` varchar(255) not null,
  `target_path` varchar(255),
  `is_system` smallint(5) unsigned default '1',
  `options` varchar(255),
  `description` varchar(255),
  `category_id` int(10) unsigned,
  `product_id` int(10) unsigned,
  PRIMARY KEY (`url_rewrite_id`),
  UNIQUE KEY (`request_path`,`store_id`),
  UNIQUE KEY (`id_path`,`is_system`,`store_id`),
  KEY `IDX_CORE_URL_REWRITE_TARGET_PATH_STORE_ID` (`target_path`,`store_id`),
  KEY `IDX_CORE_URL_REWRITE_ID_PATH` (`id_path`),
  KEY `IDX_CORE_URL_REWRITE_STORE_ID` (`store_id`),
  KEY `FK_CORE_URL_REWRITE_CTGR_ID_CAT_CTGR_ENTT_ENTT_ID` (`category_id`),
  KEY `FK_CORE_URL_REWRITE_PRODUCT_ID_CATALOG_CATEGORY_ENTITY_ENTITY_ID` (`product_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=82;

`request_path` - строка, которую надо сделать text, а после запроса идут вставки.

как грамотно это сделать, ограничив индекс строки в 1000 символов? (этого должно хватить для UNIQUE KEY)
 
Код:
CREATE TABLE `core_url_rewrite` ( 
... 
`text` TEXT DEFAULT NULL,
....
UNIQUE INDEX UK_t1_text (`request_path` (N))
....
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=82;

собсно размер индекса указывается в байтах ( параметр N )
и у него есть какое-то ограничения в настройках, и на гамнохостингах оно явно небольшое
хотя для magento наверн используется VPS
 
орёт, что Specified key was too long; max key length is 767 bytes, та же фигня, если в varchar(255) заливать больше 767 байт. а где в настройках это дело -без понятия.

upd: по ходу это не лечится Для просмотра ссылки Войди или Зарегистрируйся

типа приклеить UNIQUE к типу blob/text на произвольную длину нельзя?
 
Назад
Сверху