Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

[Поддержка] Устранение дублей страниц товаров и категорий


Yesvik

Recommended Posts

Устранение дублей страниц товаров и категорий


Устранение дублей страниц товаров и категорий


URL товаров и категорий всегда формируется с учетом иерархии категорий.

Для этого в разделе "Связи" товара сделаны изменения позволяющие указать одну категорию товара, относительно которой и будет строиться URL, и список категорий в которых этот товар будет отображаться. (смотри скриншот)

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

Если URL построен с неправильной иерархией - URL будет исправлен, например, у товара URL /desktops/mac/imac/, а пришел запрос /desktops/imac/, /mac/imac/, /mac/desktops/imac/ или просто /imac/ то URL будет исправлен.

Но если в URL будут категории которых вообще нет, например /desk/tops/mac/imac/, или не правильно указан товар /desktops/mac/ciam/ будет выведена страница ошибки с текстом "Запрашиваемая страница не найдена!" и статусом 404 Not Found.

Такое-же поведение с категориями...

Если для построения ЧПУ не хватает какого-то псевдонима - URL строится GET параметрами, при этом параметр path, который отвечает за иерархию категорий, всё равно контролируется и формируется с учетом заданной иерархии категорий.

Алгоритмы формирования и контроля URL используют кеширование, так что в большинстве случаев нагрузка на базу даже ниже чем у штатного алгоритма формирования ЧПУ. Даже при холодном старте...

09 апреля 2011 перезалил архив.

Добавлен контроль ссылок со слешем и без в конце URL, теперь /desktop/mac/imac/ и /desktop/mac/imac расцениваются как разные.

6 мая 2011 добавлена возможность выбора формата построения URL для страниц товара:

/category/subcategory/product

или

/product

При выборе построения URL /product хлебные корошки и меню формируются с учетом полного пути к товару (с категориями/подкатегориями)

Изменения в файлах ocStore версии 0.2.0

Файл: admin/controller/setting/setting.php

===================================================================

находим

'config_seo_url_auto','config_seo_url_replace',

заменяем на

'config_seo_url_include_path','config_seo_url_postfix',

Файл: admin/language/russian/setting/setting.php

===================================================================

находим

$_['entry_seo_url']           = 'Использование SEO-url:<span class="help">Необходимо настройть файл .htaccess в корневом каталоге магазина</span>';$_['entry_seo_url_auto'] 	  = 'Автоподстановка окончаний SEO-url:<span class="help">Добавляет / в конце УРЛ</span>';$_['entry_seo_url_replace']   = 'Заменять пробелы на "_" в SEO-url:';

заменяем на

$_['entry_seo_url']           = 'Использовать SEO-url:<span class="help">Необходимо настройть .htaccess в корневом каталоге магазина</span>';$_['entry_seo_url_include_path'] = 'SEO-url товаров с категориями:<span class="help">/category/subcategory/product</span>';$_['entry_seo_url_postfix']   = 'Окончание ЧПУ:<span class="help">Например / или .html</span>';

Файл: admin/view/template/setting/setting.tpl

===================================================================

находим

<tr>	<td><?php echo $entry_seo_url_auto; ?></td>	<td><?php if ($config_seo_url_auto) { ?>		<input type="radio" name="config_seo_url_auto" value="1" checked="checked" />		<?php echo $text_yes; ?>		<input type="radio" name="config_seo_url_auto" value="0" />		<?php echo $text_no; ?>		<?php } else { ?>		<input type="radio" name="config_seo_url_auto" value="1" />		<?php echo $text_yes; ?>		<input type="radio" name="config_seo_url_auto" value="0" checked="checked" />		<?php echo $text_no; ?>		<?php } ?></td></tr>

заменяем на

<tr>	<td><?php echo $entry_seo_url_include_path; ?></td>	<td><?php if ($config_seo_url_include_path) { ?>		<input type="radio" name="config_seo_url_include_path" value="1" checked="checked" />		<?php echo $text_yes; ?>		<input type="radio" name="config_seo_url_include_path" value="0" />		<?php echo $text_no; ?>		<?php } else { ?>		<input type="radio" name="config_seo_url_include_path" value="1" />		<?php echo $text_yes; ?>		<input type="radio" name="config_seo_url_include_path" value="0" checked="checked" />		<?php echo $text_no; ?>		<?php } ?></td></tr>

находим

<tr>	<td><?php echo $entry_seo_url_replace; ?></td>	<td><?php if ($config_seo_url_replace) { ?>		<input type="radio" name="config_seo_url_replace" value="1" checked="checked" />		<?php echo $text_yes; ?>		<input type="radio" name="config_seo_url_replace" value="0" />		<?php echo $text_no; ?>		<?php } else { ?>		<input type="radio" name="config_seo_url_replace" value="1" />		<?php echo $text_yes; ?>		<input type="radio" name="config_seo_url_replace" value="0" checked="checked" />		<?php echo $text_no; ?>		<?php } ?></td></tr>

заменяем на

<tr>	<td><?php echo $entry_seo_url_postfix; ?></td>	<td><input type="text" name="config_seo_url_postfix" value="<?php echo $config_seo_url_postfix; ?>" size="3" /></td></tr>

Файл: catalog/controller/common/seo_url.php

заменям полностью

Файл: catalog/model/tool/seo_url.php

заменям полностью

P.S. SeoPack решил удалить потому что многих пугает большое количество изменённых файлов, не разбираясь что в основной массе файлов изменения были связаны с заменой & на & для валидации по XHTML стандарту.

Позже напишу описание и выложу SEO URL Manager отдельно.


 

  • +1 6
Надіслати
Поділитися на інших сайтах

Имя файла: Устранение дублей страниц товаров и категорий

Владелец файла: Yesvik

Файл размещен: 06 апр. 2011

Категория файла: Прочее

URL товаров и категорий всегда формируется с учетом иерархии категорий.

Для этого в разделе "Связи" товара сделаны изменения позволяющие указать одну категорию товара, относительно которой и будет строиться URL, и список категорий в которых этот товар будет отображаться.(смотри скриншот)

post-6876-0-96815900-1302046449_thumb.png

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

Если URL построен с неправильной иерархией - URL будет исправлен, например, у товара URL /desktops/mac/imac/, а пришел запрос /desktops/imac/, /mac/imac/, /mac/desktops/imac/ или просто /imac/ то URL будет исправлен.

Но если в URL будут категории которых вообще нет, например /desk/tops/mac/imac/, или не правильно указан товар /desktops/mac/ciam/ будет выведена страница ошибки с текстом "Запрашиваемая страница не найдена!" и статусом 404 Not Found.

Такое-же поведение с категориями...

Если для построения ЧПУ не хватает какого-то псевдонима - URL строится GET параметрами, при этом параметр path, который отвечает за иерархию категорий, всё равно контролируется и формируется с учетом заданной иерархии категорий.

Алгоритмы формирования и контроля URL используют кеширование, так что в большинстве случаев нагрузка на базу даже ниже чем у штатного алгоритма формирования ЧПУ. Даже при холодном старте...

Нажмите сюда, чтобы скачать этот файл

У Вас файлы в архиве уже все переделаны. Все перекопировал, Сделал запросы в БД, в товарах появились title и h1 Сверху в админке выскакивает Notice: Undefined index: title in /home/u199843/protherm-rus.ru/www/admin/model/catalog/product.php on line 425Notice: Undefined index: h1 in /home/u199843/protherm-rus.ru/www/admin/model/catalog/product.php on line 426. Товары не вводятся, а при изменении старые пропадают. Что сделать подскажите. Спасибо.
Надіслати
Поділитися на інших сайтах


У Вас файлы в архиве уже все переделаны.

В архиве файлы для ocStore 0.1.9, как устанавливать на предыдущие версии описано в readme.txt
Надіслати
Поділитися на інших сайтах

поставил 0.1.9 и могу сказать что доработка Yesvik мега крутая штука из любого места урл подставляется согласно запланированному как и в описании к модулю

вот теперь думаю ждать 0.2.0 и обновляться с 0.1.7 или делать это сейчас что может повлечь за собой уже смену существующих урлов и смену урлов в индексе и очередные ожидания переиндексации

Yesvik а 301 редиректы где и каким образом прописаны ? возможно мне удастся временно обойтись полумерами в виде этих редиректов и дождаться 2.0 чтобы 100 раз не обновляться

еще раз я в восторге

Надіслати
Поділитися на інших сайтах

поставил 0.1.9 и могу сказать что доработка Yesvik мега крутая штука из любого места урл подставляется согласно запланированному как и в описании к модулю

вот теперь думаю ждать 0.2.0 и обновляться с 0.1.7 или делать это сейчас что может повлечь за собой уже смену существующих урлов и смену урлов в индексе и очередные ожидания переиндексации

Yesvik а 301 редиректы где и каким образом прописаны ? возможно мне удастся временно обойтись полумерами в виде этих редиректов и дождаться 2.0 чтобы 100 раз не обновляться

еще раз я в восторге

А чего ты переживаеш за индексацию?

Если ты не измениш псевдонимы у товаров и у категорий, то все старые урлы будут переадресованы на новые со статусом 301. Я прекрасно понимаю как болезненна смена URL - потому и сделал редиректы 301.

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

Даже если ты не использовал псевдонимы и у тебя ссылки вида /index.php?route=product/product&path=25_28&product_id=42 - есть два варианта:

1. включить SEO но не прописывать псевдонимы и тогда будет работать контроль ссылок с редиректами на URL в котором path будет всегда один и тот-же;

2. включить SEO и прописать псевдонимы - тогда тоже будет работать контроль, но редиректы будут на ЧПУ;

На любой из вариантов поисковики отреагируют лояльно.

Проверка правильности URL использует алгоритм формирования ЧПУ, так что отдельно редиректы выдернуть не получится...

Ну и в крайнем случае, можно не обновлять магазин полностью, а прикрутить только новый алгоритм формирования ЧПУ. В readme.txt расписано как это сделать.

  • +1 1
Надіслати
Поділитися на інших сайтах

Спасибо Yesvik

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

посмотрел на 0.1.9 и плюс Ваш модуль уже получается очень даже оптимизированный движок

еще бы разобраться как H1 название товара вверх страницы поднять и можно спать спокойно :-)

Надіслати
Поділитися на інших сайтах

Имя файла: Устранение дублей страниц товаров и категорий

Владелец файла: Yesvik

Файл размещен: 06 апр. 2011

Категория файла: Прочее

URL товаров и категорий всегда формируется с учетом иерархии категорий.

Для этого в разделе "Связи" товара сделаны изменения позволяющие указать одну категорию товара, относительно которой и будет строиться URL, и список категорий в которых этот товар будет отображаться.(смотри скриншот)

post-6876-0-96815900-1302046449_thumb.png

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

Если URL построен с неправильной иерархией - URL будет исправлен, например, у товара URL /desktops/mac/imac/, а пришел запрос /desktops/imac/, /mac/imac/, /mac/desktops/imac/ или просто /imac/ то URL будет исправлен.

Но если в URL будут категории которых вообще нет, например /desk/tops/mac/imac/, или не правильно указан товар /desktops/mac/ciam/ будет выведена страница ошибки с текстом "Запрашиваемая страница не найдена!" и статусом 404 Not Found.

Такое-же поведение с категориями...

Если для построения ЧПУ не хватает какого-то псевдонима - URL строится GET параметрами, при этом параметр path, который отвечает за иерархию категорий, всё равно контролируется и формируется с учетом заданной иерархии категорий.

Алгоритмы формирования и контроля URL используют кеширование, так что в большинстве случаев нагрузка на базу даже ниже чем у штатного алгоритма формирования ЧПУ. Даже при холодном старте...

Нажмите сюда, чтобы скачать этот файл

Сделал как написано в readme для старых версии в админке вместо категории появилось Notice: Undefined variable: entry_main_category in /home/u199252/мой сайт/www/admin/view/template/catalog/product_form.tpl on line 216 Подскажите пожалуйста в чем проблема. Версия 0.1.6
Надіслати
Поділитися на інших сайтах


Сделал как написано в readme для старых версии в админке вместо категории появилось Notice: Undefined variable: entry_main_category in /home/u199252/мой сайт/www/admin/view/template/catalog/product_form.tpl on line 216 Подскажите пожалуйста в чем проблема. Версия 0.1.6

Все получилось OK . Спасибо большое Yesvik
Надіслати
Поділитися на інших сайтах


Спасибо, отличный мод, сразу поставил ocStore и сразу накатил этот под. Только у меня вопрос, возможно не связанный с данным модом: если у меня в разных разделах используются одинаковые "seo alias", например: www.shop/lanos/motor/tovar и www.shop/lada/motor/tovar , то при заходе на www.shop/lada/motor перекидывает на shop/lanos/motor (с другими подкатегориями также), это из-за мода или нет, просто я магазин поставил сразу с модом, возможности проверить нету.

Надіслати
Поділитися на інших сайтах


Спасибо, отличный мод, сразу поставил ocStore и сразу накатил этот под. Только у меня вопрос, возможно не связанный с данным модом: если у меня в разных разделах используются одинаковые "seo alias", например: www.shop/lanos/motor/tovar и www.shop/lada/motor/tovar , то при заходе на www.shop/lada/motor перекидывает на shop/lanos/motor (с другими подкатегориями также), это из-за мода или нет, просто я магазин поставил сразу с модом, возможности проверить нету.

алиасы обязательно должны быть разными
Надіслати
Поділитися на інших сайтах

Нашел баг: если в алиасах использовать подчеркивание то страница становится не найдена. как только подчеркивания меняешь на пробелы все отлично работает и модуль сам заменяет пробелы на подчеркивания

Надіслати
Поділитися на інших сайтах


Нашел баг: если в алиасах использовать подчеркивание то страница становится не найдена. как только подчеркивания меняешь на пробелы все отлично работает и модуль сам заменяет пробелы на подчеркивания

Да, это остаточные явления борьбы с пробелами в алиасах, до которых руки ещё не добрались.

Получается следующая засада:

Если в алиасе есть и пробелы и подчерки, и в настройках включено "Заменять пробелы на "_" в SEO-url", то при формировании ЧПУ пробелы заменяются на подчерки... А при обратном преобразовании даже те подчерки которые изначально были в алиасе заменяются на пробелы. В итоге - ничего не работает.

По хорошему надо поставить контроль чтобы всякие глупости в алиасы не писали, а не корректировать алиасы при формировании ЧПУ.

Старайся придерживаться таких правил:

В алиасах не должно быть пробелов, а вместо подчерка ( _ ), с точки зрения SEO, желательно использовать минус ( - ).

Надіслати
Поділитися на інших сайтах

Подскажите, стоит ваш модуль, если изменить seo alias для категории, в которой уже есть товары, то товары из этой категории пропадают, нужно заново пересохранять товар, т.е. нажать "изменить"-"готово" и только тогда seo-url перезаписывается правильно. Это связано с вашим модулем или это кривость движка opencart? и как это можно изменить? И еще воспрос, почему вы считаете что "-" лучше , чем "_". Спасибо.

Надіслати
Поділитися на інших сайтах


Подскажите, стоит ваш модуль, если изменить seo alias для категории, в которой уже есть товары, то товары из этой категории пропадают, нужно заново пересохранять товар, т.е. нажать "изменить"-"готово" и только тогда seo-url перезаписывается правильно. Это связано с вашим модулем или это кривость движка opencart? и как это можно изменить? И еще воспрос, почему вы считаете что "-" лучше , чем "_". Спасибо.

Опиши точнее что значит "пропадают товары"?

Какая версия OpenCart?

Как правило "_" используется в качестве разделителя слов.

Некоторые поисковики воспринимают слова разделённые "_" как одно слово.

При использовании в качестве разделителя "-" все поисковики воспринимают слова раздельно.

Учитывая что вхождение ключевика в URL имеет значительный вес при ранжировании, а точное совпадение с поисковым запросом более релевантно - я бы не стал пренебрегать таким советом даже с учетом того что 100% подтверждения, описанному поведению поисковиков, нет.

Надіслати
Поділитися на інших сайтах

Yesvik, нужна твоя помощь с устранением глюка.

Ситуация:

1. Включаем SEO-URL с твоими правками.

2. В одной из категеорий (с большим количеством товара) оставляем элиас пустым.

3. Идем в эту категорию и обнаруживаем отсуствие листания по страницам.

Поправь, плиз и скинь мне изменения.

Надіслати
Поділитися на інших сайтах


Ситуация:

1. Включаем SEO-URL с твоими правками.

2. В одной из категеорий (с большим количеством товара) оставляем элиас пустым.

3. Идем в эту категорию и обнаруживаем отсуствие листания по страницам.

А какие ссылки формируются в постраничной навигации?
Надіслати
Поділитися на інших сайтах

Ошибку нашел, исправил, но у меня уже почти готовы новые заморочки с ЧПУ... Произвольные окончания, ЧПУ на ссылки типа route=account/account, route=checkout/cart и т.д.

Выкладывать исправления или новый вариант?

  • +1 1
Надіслати
Поділитися на інших сайтах

Ошибку нашел, исправил, но у меня уже почти готовы новые заморочки с ЧПУ... Произвольные окончания, ЧПУ на ссылки типа route=account/account, route=checkout/cart и т.д.

Выкладывать исправления или новый вариант?

Вау других слов нет скоро ПС будут содрогаться от Вашего имени

но если не сложно можно в двух словах зачем корзину индексировать ? даже если страница попадет в основной индекс и пользователь перейдет на нее из ПС он растеряется и его поведение будет практически таким же как и при попадании на 404

я сейчас наблюдаю глубину 1 при попадании на 404 так как уже около месяца в ПС сидят страницы от старого движка

Надіслати
Поділитися на інших сайтах

Вау других слов нет скоро ПС будут содрогаться от Вашего имени

но если не сложно можно в двух словах зачем корзину индексировать ? даже если страница попадет в основной индекс и пользователь перейдет на нее из ПС он растеряется и его поведение будет практически таким же как и при попадании на 404

я сейчас наблюдаю глубину 1 при попадании на 404 так как уже около месяца в ПС сидят страницы от старого движка

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

Я для тестов автоматом собрал и затолкал в модуль кучу пар запрос->псевдоним... А вообще каждый сам будет добавлять/удалять пары запрос->псевдоним так как сочтёт нужным.

  • +1 2
Надіслати
Поділитися на інших сайтах

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

Я для тестов автоматом собрал и затолкал в модуль кучу пар запрос->псевдоним... А вообще каждый сам будет добавлять/удалять пары запрос->псевдоним так как сочтёт нужным.

Очень интересная вещь. :)

Надіслати
Поділитися на інших сайтах


Ошибку нашел, исправил, но у меня уже почти готовы новые заморочки с ЧПУ... Произвольные окончания, ЧПУ на ссылки типа route=account/account, route=checkout/cart и т.д.

Выкладывать исправления или новый вариант?

Ну, лучше и то и другое. :)

Надіслати
Поділитися на інших сайтах


Ну, лучше и то и другое. :)

У меня небольшая загвоздка...

В новом варианте seo_url я убрал в настройках 2 пункта. Замена пробела на подчерк и добавление слеша в конце ЧПУ. Добавил поле для ввода окончания ЧПУ. Это поле можно оставить пустым или указать любое желаемое окончание ЧПУ, например, / или .html и т.д. Но остаётся открытым вопрос с заменой пробелов на подчерк... Заменять на лету не совсем корректно и работает только при соблюдении определённых условностей. Если я добавлю процедурку которая по нажатию кнопочки пройдётся по всем псевдонимам и приведёт их в порядок (заменит пробелы на минус) - это будет нормальным решением? Это решение временное, пока не допишу формирование псевдонимов при создании/редактировании категорий/товаров/производителей/статей с соответствующим контролем правильности написания псевдонима при ручном вводе.

Пошел писать исправлялку, но жду пожелания или другие варианты решений этой загвоздки.

  • +1 1
Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.