Регистрация
Вход через соцсети
Восстановление пароля

Изменить url "?curPos=20&cur_cc=886" на "/2/"

Новый топик
29.08.2014, 17:39
Ответить | Цитировать
Вячеслав
ruCreate
Вячеслав

Зарегистрирован:
2013-04-12
Сообщений: 87

Проверил сайт собранный на данной CMS. Собирался год назад. Количество страниц в sitemap 2000 шт. В инфоблоке товара установлено по 20 объектов на страницу. В некоторых разделах количество объектов более 20, отсюда и получаются ссылки следующей страницы вида "/catalog/?curPos=20&cur_cc=886". Вообще сайт хорошо индексируется поисковиками. Но вот обнаруженная проблема - товары, которые находятся на странице с ссылками "/catalog/?curPos=20&cur_cc=886" практически не проиндексированы. Это катастрофа для СЕО.
Вопрос: как изменить ссылки вида "/catalog/?curPos=20&cur_cc=886" на нормальные "/2/"?
29.08.2014, 17:45
Ответить | Цитировать
Вячеслав
ruCreate
Вячеслав

Зарегистрирован:
2013-04-12
Сообщений: 87

Где то на форуме читал, что это возможно будет изменять в версии 5.4.
Вообще ситуация довольно критичная для продвижения крупных сайтов
29.08.2014, 22:03
Ответить | Цитировать
Nexwich
Панасин Александр
Nexwich

Зарегистрирован:
2011-04-05
Сообщений: 943

Как насчет RewriteRule?
Задайте регулярное выражение и прыгайте от счастья.
Все эти модули делают почти тоже самое только с использованием интерфейса

RewriteCond %{HTTP_HOST} ^example.ru$ [NC]
RewriteBase /
RewriteRule ?curPos=(.*)0 http://example.ru/catalog/$1 [L]

Модуль "Почтовые уведомления" – настройка уведомлений на вашем сайте без программирования. Цена отзыв. Мне очень важно ваше мнение.
02.09.2014, 11:01
Ответить | Цитировать
Вячеслав
ruCreate
Вячеслав

Зарегистрирован:
2013-04-12
Сообщений: 87

Дело в том, что стандартные правила для .htaccess в корне сайта тут не работают.
Особенно порадовала ссылка на базу знаний http://www.netcat.ru/support/knowledge/knowledge_88.html . Единственной что можно поменять это сайт с www на без и обратно.

Подобные правила
Код:
RewriteEngine On
RewriteRule ^([^/]*)/([^/]*)\.html$ /catalog/ustroystva-vvoda/myshi/?cur_cc=$1&curPos=$2 [L]

работаю на других ЦМС и без них.

Про какой интерфейс вы говорите, про "Список переадресаций" в админке? Там работает только конкретная перадресация с одной страничку на другую, а пример из коробочной версии типа /catalog/1/2/?cur_cc=886&curPos=12 на /catalog/1/2/2.html работоспособностью не обладают.
02.09.2014, 15:46
Ответить | Цитировать
okn.name
Константин Орленко
okn.name

Зарегистрирован:
2010-07-20
Сообщений: 208

С 5.4 внедрён модуль «Маршрутизация», с его помощью можно настроить все урлы на сайте на свой вкус, включая постраничную навигацию.

Здесь есть примеры.

Ваша задача решается добавлением одного правила.

P.S: Если в разделе выводится только один инфоблок, выставьте опцию «Выводить только первый инфоблок» для того, чтобы отбросить в урле это &cur_cc=886

02.09.2014, 18:54
Ответить | Цитировать
Вячеслав
ruCreate
Вячеслав

Зарегистрирован:
2013-04-12
Сообщений: 87

Да, вы правы.
Решил таким образом:

1. в маршрутах добавил /{folder}/{page}/ - убирается curPos вместе со значением, cur_cc=886 убирается выбором в разделе «Выводить только первый инфоблок». Подстановка значения {infoblock_id} - идентификатора желаемого результата не дала. Кстати похожие проблемы с выводом 2-го инфоблока наблюдались в longpage сайтах.

2. Ну а второй текстовый компонент, который зачастую просто необходим можно вызвать из базы в нужном месте:
Код:
<?php
$nc_core->db->query("SELECT * FROM `MessageXXXX` where `Subdivision_ID` = '$sub'" );
//MessageXXXX - текстовый инфоблок
$arr = $nc_core->db->last_result;
if (!empty($arr)) {
foreach ($arr as $row) {
$a = $row->Sub_Class_ID;
}
}
echo nc_objects_list($sub, $a);
?>

Константин, спасибо за свежую информацию. Благо, что есть разработчики и напильник
198 196 2014-09-02 18:54:01 13790
Описание проекта