Автор Тема: привести ссылки на товары к старому виду?  (Прочитано 1336 раз)

19 Март 2013, 17:08:37
  • Новичок
  • *
  • Сообщений: 28
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
в престе 1.1.0.5 имелось:
http://мойсайт/адрес_товара.html
в 1531 они выглядят как
http://мойсайт/код_языка/название_группы/адрес_товара.html
учитывая наличие хар-ссылок в материалах сайта и возможные ссылки в избранных посетителей (да и вообще), хотелось бы ссылки в новой версии привести к виду старой

возможно ли это решить настройками, без переписывания $url.$dispatcher->createUrl('product_rule', $id_lang, $params, $force_routes, $anchor);
?
19 Март 2013, 18:41:59
Ответ #1
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22315
  • Репутация: +17114/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
В админке можно настроить адрес
Настройка > SEO и URL
Цитировать
название_группы
это, наверное, категория. Тогда в Путь к товарам удалить
{category} и изменить правила в htaccess для разных языков.
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
19 Март 2013, 22:48:20
Ответ #2
  • Новичок
  • *
  • Сообщений: 28
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
В админке можно настроить адрес
Настройка > SEO и URL

гм... у меня после апдейта с 1.1.0.5 до 1.5.3.1 в админке в Preferences вообще нет пункта SEO & URLs... :(
(в начисто установленном 1.5.3.1 есть)

может, хитрость какая имеется?
19 Март 2013, 23:32:04
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 885
  • Репутация: +206/-0
    • Просмотр профиля
А если язык переключить появляется? Может в переводе проблема?
20 Март 2013, 02:09:34
Ответ #4
  • Новичок
  • *
  • Сообщений: 28
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
В админке можно настроить адрес
Настройка > SEO и URL
Цитировать
название_группы
это, наверное, категория. Тогда в Путь к товарам удалить
{category}

изменил на тестовом магазине в Preferences > SEO & URLs
Route to products  на "{id}-{rewrite}{-:ean13}.html"
те же лыжи - в результатах поиска по сайту например выдается в виде
http://localhost/PrestaShop1531/en/music-ipods/2-ipod-shuffle.html
печалька такая :(
20 Март 2013, 11:16:28
Ответ #5
  • Администратор
  • Ветеран
  • *****
  • Сообщений: 102479
  • Репутация: +34219/-0
    • Просмотр профиля
URL scheme not working anymore from version 1.5.3
Работает в prestashop 1.5.2.
Для 1.5.3 нужно изменять Dispatcher.php.
21 Март 2013, 19:21:33
Ответ #6
  • Новичок
  • *
  • Сообщений: 28
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
URL scheme not working anymore from version 1.5.3
Работает в prestashop 1.5.2.
Для 1.5.3 нужно изменять Dispatcher.php.

заменил как здесь:
     // Set default routes
     foreach (Language::getLanguages() as $lang)
       foreach ($this->default_routes as $id => $route)
-        $this->addRoute(
-          $id,
-          $route['rule'],
-          $route['controller'],
-          $lang['id_lang'],
-          $route['keywords'],
-          isset($route['params']) ? $route['params'] : array()
-        );
+        if (!isset($this->routes[$lang['id_lang']][$id]))
+          $this->addRoute(
+            $id,
+            $route['rule'],
+            $route['controller'],
+            $lang['id_lang'],
+            $route['keywords'],
+            isset($route['params']) ? $route['params'] : array()
+          );
   }
    /**

то же самое - при Route to products равном {id}-{rewrite}{-:ean13}.html (проверил уже по БД!), в ссылках на товары имеется категория: http://мойсайт//en/home/506-kit-0004-.html
:(
22 Март 2013, 16:44:57
Ответ #7
  • Новичок
  • *
  • Сообщений: 28
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
больше вариантов нет?
м.б. я что-то сделал не так?
22 Март 2013, 17:00:09
Ответ #8
  • Администратор
  • Ветеран
  • *****
  • Сообщений: 102479
  • Репутация: +34219/-0
    • Просмотр профиля
22 Март 2013, 22:14:04
Ответ #9
  • Новичок
  • *
  • Сообщений: 28
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Изменения в классе dispatcher.php на Github

отлично - теперь все работает! :)
(добавил по вашей ссылке, и еще той что писал чуть выше сам)
22 Март 2013, 22:36:53
Ответ #10
  • Новичок
  • *
  • Сообщений: 28
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
и изменить правила в htaccess для разных языков.

вот это не совсем понятно
как mod_rewrite Apacha может изменить в уже сгенерированной странице ссылку вида
http://мойсайт/en/506-kit-0004-.html
на
http://мойсайт/506-kit-0004-.html
?

да и еще... вот этот самый /en/ - он вообще несет какую-то смысловую нагрузку?
насколько понимаю, он как бы передает сайту, на каком языке должен он должен отобразить страницу?
(но разве это не сохраняется нигде в куках?..)
25 Март 2013, 19:00:41
Ответ #11
  • Новичок
  • *
  • Сообщений: 28
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
(уточнений не будет, надо полагать что?  :) )
26 Март 2013, 10:56:05
Ответ #12
  • Администратор
  • Ветеран
  • *****
  • Сообщений: 102479
  • Репутация: +34219/-0
    • Просмотр профиля
Цитировать
как mod_rewrite Apacha может изменить в уже сгенерированной странице ссылку
Может, смотрите примеры - htaccess rewriterule
Цитировать
/en/ - он вообще несет какую-то смысловую нагрузку?
Дает возможность показывать страницу на разных языках. При использоывании одного языка, можно убрать.
Url для английского
http://мойсайт/en/506-kit-0004-.htmlUrl для русского
http://мойсайт/ru/506-kit-0004-.htmlUrl формируется согласно общим правилам. Различие в разных языковых версиях, это название языка.