Автор Тема: [Решено] ЧПУ без ID для Prestashop 1.5.4.1  (Прочитано 6509 раз)

05 Июль 2013, 12:17:24
  • Новичок
  • *
  • Сообщений: 18
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Подскажите как удалить ID в URL. Пробовал воспользоваться решением описанным тут, ничего не получилось.
05 Июль 2013, 13:20:29
Ответ #1
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22816
  • Репутация: +17143/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
Что не получилось? Какие ошибки?
Хороший бесплатный модуль prestashop для изменения ЧПУ.  Модуль работает без ошибок, устанавливается на версию prestashop 1.5.4.1 без проблем (если у вас нет одинаковых названия и категорий, продуктов, страниц).
Копируете модуль cleanurls в папку
/modules/В админке устанавливаете модуль и получаете ссылки без ид.
Проверено на стандарной установке prestashop версии 1.5.3 - 1.5.4.1
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
05 Июль 2013, 14:37:24
Ответ #2
  • Новичок
  • *
  • Сообщений: 18
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Что я делал:
1. Скопировал файлы:
  • /override/classes/Dispatcher.php
  • /override/controllers/front/CategoryController.php
  • /override/controllers/front/CmsController.php
  • /override/controllers/front/ManufacturerController.php
  • /override/controllers/front/ProductController.php
  • /override/controllers/front/SupplierController.php
2. Изменил схему URL в соответствии со скриншотом из архива removeURLid1.5_v0.22.zip
3. Сохранил.
После этого вылезло куча сообщений об ошибках, в которых упоминались новые правила из пункта 2. К сожалению, что дословно было в ошибке не помню.
Могу попробовать воспроизвести, если это нужно.
4. Установил модуль cleanurls_v0.3.1.zip
5. В итоге сайт работал, домашняя страница открывалась. Но при выборе какого-либо товара ВСЕГДА открывался один и тот же товар.
При этом:
  • ID в ссылках остался;
  • В модуле cleanurls в настройках была куча товаров.
05 Июль 2013, 14:50:39
Ответ #3
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22816
  • Репутация: +17143/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
В PrestaShop версии 1.5 , можно добавить "переопределение" классов и контроллеров из самого модуля. Новые классы и конроллеры добавляются в папку "override" при установке модуля.
Для этого в системе существуют два способа: addOverride и removeOverride.
Поэтому ничего не нужно копировать в папку "override", только установить модуль.

Установка модуля ЧПУ без ИД.
1. Расспаковать ZIP архив.
2. Скопировать паку "cleanurls" в папку  "/modules/"
3. В админке установить модуль.

Все, больше ничего не нужно делать (только для PrestaShop версии 1.5).
Проверено, работает даже, если не менять схему URL.
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
05 Июль 2013, 15:35:49
Ответ #4
  • Новичок
  • *
  • Сообщений: 18
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Сделал как вы посоветовали, в итоге при выборе любого товара попадаю на одну и туже страницу (другого товара).

Я правильно, что понимаю cleanurl отображает все страницы с одинаковым URL?

Внес правки в ЧПУ для некоторых товаров. Модуль cleanurl их теперь не отображает. Но все-равно по-прежнему попадаю на одну и туже страницу.

Как мне проверить что ID удалились из URL?
Например, в свойствах товара (SEO) отображается, что ссылка будет примерно следующего вида http://www.shop.ru/lang/182-item3.html
Если я ее вбиваю в адресной строке, то мне выдается ошибка
Цитировать
СТРАНИЦА НЕДОСТУПНА

К сожалению, такой адрес уже существует
При этом как видно ID в адресе остался.

Цитировать
В PrestaShop версии 1.5 , можно добавить "переопределение" классов и контроллеров из самого модуля.
Можно поподробнее как это делается или ссылку где это описано?
05 Июль 2013, 16:45:12
Ответ #5
  • Ветеран
  • *****
  • Сообщений: 22125
  • Репутация: +25303/-1
  • Prestashop - просто и эффективно
    • Просмотр профиля
Цитировать
Я правильно, что понимаю cleanurl отображает все страницы с одинаковым URL?
Нет, если адреса одинаковые, то увидете только одну страницу.
Этот модуль убираете ID из чпу.
Была ссылка у категории с ID=1
http://prestashop.ru/en/1-laptops/после установки модуля будет
http://prestashop.ru/en/laptops/
Цитировать
Можно поподробнее как это делается или ссылку где это описано?
Overriding default behaviors
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
05 Июль 2013, 17:09:39
Ответ #6
  • Новичок
  • *
  • Сообщений: 18
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Хорошо. Спасибо за ссылку.

Цитировать
Нет, если адреса одинаковые, то увидите только одну страницу.
У меня именно так - одна страница. Я имел ввиду, что в настройках модуля показываются страницы с одинаковыми URL.
Адреса я поправлю (но это займет длительное время), поэтому вопрос: как проверить, что модуль работает, не исправляя адреса всех страниц?

Как уже писал, исправил URL для нескольких товаров, в свойствах товара (SEO) отображается - http://www.shop.ru/lang/182-item3.html. Это означает что модуль не работает? Или там всегда будет адрес с ID, вне зависимости установлен модуль или нет?
 
05 Июль 2013, 17:19:47
Ответ #7
  • Ветеран
  • *****
  • Сообщений: 22125
  • Репутация: +25303/-1
  • Prestashop - просто и эффективно
    • Просмотр профиля
Смотрите ID товара, если ID=182 и в url "182-item3.html", то не работает.
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
08 Июль 2013, 10:19:45
Ответ #8
  • Новичок
  • *
  • Сообщений: 18
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Спасибо всем за помощь. Проблему решить удалось.

Возник другой вопрос связанный с URL. В адресах страниц в конце дописывается #.UdpZuWL0EwE
Что это? И как убрать?
08 Июль 2013, 10:43:15
Ответ #9
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-0
    • Просмотр профиля
 Во всех адресах? Или на кокой-то одной странице?
Фильтры какие-нибудь подключены?
08 Июль 2013, 10:48:31
Ответ #10
  • Новичок
  • *
  • Сообщений: 18
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
На всех страницах, кроме главной. Фильтры вроде не подключены.
08 Июль 2013, 10:50:43
Ответ #11
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-0
    • Просмотр профиля
Если это добавилось после изменений, то править нужно htaccess. Пересмотри там правила.
08 Июль 2013, 12:57:46
Ответ #12
  • Новичок
  • *
  • Сообщений: 18
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Проверил на локальной машине, там с url все в порядке. Сравнил файлы .htaccess, особой разницы между ними не заметил, кроме блоков
<IfModule mod_expires.c> и <IfModule mod_deflate.c>.

Как удалить из адреса все что начинается с #.?
08 Июль 2013, 13:27:49
Ответ #13
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-0
    • Просмотр профиля
Кеш и копиляцию чистил?
08 Июль 2013, 13:38:37
Ответ #14
  • Новичок
  • *
  • Сообщений: 18
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля