Jump to content

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

Version number:
   (10 reviews)
Sign in to follow this  

1 Screenshot

About This File

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 отдельно.



  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.