Система управления контентом SantaFox

Работа с SantaFox => Модуль "Каталог товаров" => Тема начата: Oslix от 21 Октябрь 2011, 16:29:42

Название: ЧПУ в каталоге товаров
Отправлено: Oslix от 21 Октябрь 2011, 16:29:42
Добавил материал в WIKI

http://wiki.santafox.ru/doku.php?id=constructor:catalog&#%D1%87%D0%BF%D1%83_%D0%B4%D0%BB%D1%8F_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BE%D0%B2
Название: Re: ЧПУ в каталоге товаров
Отправлено: zakazchik от 27 Октябрь 2011, 00:25:55
отлично, а можно пример шаблона? чет сложновато самому
Название: Re: ЧПУ в каталоге товаров
Отправлено: maksonio от 22 Ноябрь 2011, 18:38:59
Все сделал как написано (только категории), ссылки правильные, но перенаправляет на главную. Ссылка получается такого вида:
/с17/monitory/ (напр.)

Никто не знает, что может быть?

Надо же изменение в основной .htaccess вносить? правильно?
Название: Re: ЧПУ в каталоге товаров
Отправлено: arteshuk от 22 Ноябрь 2011, 18:46:51
RewriteRule   ^c(\d+)/([a-z0-9_-]+)/ index.php?sitepage=catalogpage&cid=$1 [QSA,L]

вот тут повнимательней все проверь...
Название: Re: ЧПУ в каталоге товаров
Отправлено: maksonio от 22 Ноябрь 2011, 18:49:40
RewriteRule   ^c(\d+)/([a-z0-9_-]+)/ index.php?sitepage=catalogpage&cid=$1 [QSA,L]

вот тут повнимательней все проверь...

Здесь все правильно. А вносится в основной же htaccess, который сразу в корне? Если так, то вообще непонятно в чем подвох
Название: Re: ЧПУ в каталоге товаров
Отправлено: maksonio от 22 Ноябрь 2011, 19:05:18
Вот так должен же выглядеть htaccess?

RewriteBase /

RewriteEngine On


#RewriteRule   !^features.*     -                  [C]

RewriteRule   ^c(\d+)/([a-z0-9_-]+)/ index.php?sitepage=catalogpage&cid=$1 [QSA,L]

RewriteRule   ^[a-z0-9_-]*\.html.*                     index.php


AddDefaultCharset UTF-8
Название: Re: ЧПУ в каталоге товаров
Отправлено: arteshuk от 22 Ноябрь 2011, 19:21:31
дай ссылку на сайт
Название: Re: ЧПУ в каталоге товаров
Отправлено: maksonio от 22 Ноябрь 2011, 19:34:33
дай ссылку на сайт

Кинул в личку
Название: Re: ЧПУ в каталоге товаров
Отправлено: maksonio от 22 Ноябрь 2011, 19:48:09
arteshuk Огромное спасибо!

Для тех у кого возникнет такой же вопрос.

RewriteRule   ^c(\d+)/([a-z0-9_-]+)/ index.php?sitepage=catalogpage&cid=$1 [QSA,L]

в последней строке catalogpage - это айди страницы каталога в структуре

вот вариант в моем случае:

RewriteRule   ^c(\d+)/([a-z0-9_-]+)/ index.php?sitepage=allcat_mebel&cid=$1 [QSA,L]

Еще раз спасибо arteshuk.
Название: Re: ЧПУ в каталоге товаров
Отправлено: maksonio от 22 Ноябрь 2011, 19:56:12
Но возникла другая проблема. Во первых не подключается css к странице с ЧПУ, хотя в исходнике (при просмотре) все ок, т.е. дизайн ломается полностью. А так же как быть с дорогой, где ее можно поменять для каталога?
Название: Re: ЧПУ в каталоге товаров
Отправлено: arteshuk от 22 Ноябрь 2011, 20:03:05
у тебя


<link rel="stylesheet" href="design/css/style.css" type="text/css" media="screen, projection" />


должно быть


<link rel="stylesheet" href="/design/css/style.css" type="text/css" media="screen, projection" />

и так для всего, скрипты, CSS, пути...для всего!

дорога для каталога прописывается в шаблонах каталога, если мне не изменяет память  переменная %cat_way_blok%
Название: Re: ЧПУ в каталоге товаров
Отправлено: maksonio от 22 Ноябрь 2011, 20:12:00
Ок.

Еще раз огромное спасибо.
Название: Re: ЧПУ в каталоге товаров
Отправлено: zakazchik от 26 Ноябрь 2011, 02:06:40
Хотел как лучше а получилась:

1) ?cid=1 ссылка с карты сайта ведёт не туда куда надо
2) зашёл товар посмотреть, а потом захотел уйти на другую страницу и не могу! http://domen/i1/categoria/faq.html http://domen/i1/categoria/about.html ...
3) ещё и дорогу переделывать

зачем так дублировать страницы сайта и вводить в заблуждения как пользователя так и поисковые системы, есть ещё варианты?
Название: Re: ЧПУ в каталоге товаров
Отправлено: arteshuk от 26 Ноябрь 2011, 16:22:43
есть конечно! Даже если вас съели...у вас есть 2 варианта  :), и тут то же есть...но они дороже :)
Название: Re: ЧПУ в каталоге товаров
Отправлено: ermy от 27 Февраль 2012, 22:35:44
Народ, хелп. Прочитал всю ветку. Вики перечитал раз 10. Вроде все сделал как надо. Путь пишется корректный, но вот выпадает 404 ошибка хоть убей.

.htaccess
---------------
RewriteBase /

RewriteEngine On



#RewriteRule   !^features.*     -                  [C]

RewriteRule   ^c(\d+)/([a-z0-9_-]+)/ index.php?sitepage=katalog&cid=$1 [QSA,L]
RewriteRule   ^i(\d+)/([a-z0-9_-]+)/ index.php?sitepage=katalog&itemid=$1 [QSA,L]

RewriteRule   ^[a-z0-9_-]*\.html.*                     index.php

AddDefaultCharset UTF-8
---------------

В шаблоне категорий:
---------------
<li><a href="/c%id%/%uri_value%/" title="%name_value%">%name_value%</a></li>
---------------

В шаблоне списка товаров
---------------
<a href="/i%item_id%/%uri_value%/">Подробнее...</a>
---------------

Может со стороны хостинга проблемы? Что может быть?
Название: Re: ЧПУ в каталоге товаров
Отправлено: ermy от 27 Февраль 2012, 22:47:32
Каким-то чудесным образом через 5 минут после написания предыдущего сообщения все заработало.
Чудеса, да и только :)
Название: Re: ЧПУ в каталоге товаров
Отправлено: dh05 от 03 Апрель 2012, 08:43:48
Ситуация такая же как и в предыдущих двух постах.
Что может быть.
Название: Re: ЧПУ в каталоге товаров
Отправлено: ermy от 03 Апрель 2012, 09:39:48
Может поможет...заметил одну вещь. Поле "uri" всегда должно быть с маленькой буквы. Сначала писал с большой - не работало. Знак "-" понимает хорошо, а другие не использовал.
Название: Re: ЧПУ в каталоге товаров
Отправлено: dh05 от 03 Апрель 2012, 09:47:43
Поле "uri" все написана с маленькой буквы. Может настройка сервера?
Так как cms должна перекидывать на index если страницы нет, а она не перекидывает и выдает ошибку 404, а в логах апача  File does not exist: /путь к корню сайта/c4/zashita/
Название: Re: ЧПУ в каталоге товаров
Отправлено: dh05 от 03 Апрель 2012, 12:43:33
Заметил что сама cms не дописывает / вначале ссылки или изображения. Это как-то лечится?

В общем заработал.
если нужено что-бы / добавлялся, то нужно тег base в head поставить.
а если выдает 404 ошибку то можно вместо

RewriteRule   ^c(\d+)/([a-z0-9_-]+)/ index.php?sitepage=catalogpage&cid=$1 [QSA,L]
написать

RewriteRule   ^c([0-9]+)/([a-z0-9_-]+)/ index.php?sitepage=catalogpage&cid=$1 [QSA,L]

С товаром тоже самое.
Название: Re: ЧПУ в каталоге товаров
Отправлено: alexandr от 19 Февраль 2013, 22:33:10
у тебя


<link rel="stylesheet" href="design/css/style.css" type="text/css" media="screen, projection" />


должно быть


<link rel="stylesheet" href="/design/css/style.css" type="text/css" media="screen, projection" />

и так для всего, скрипты, CSS, пути...для всего!

дорога для каталога прописывается в шаблонах каталога, если мне не изменяет память  переменная %cat_way_blok%
а можно немного подробнее с дорогой. какого вида нужен шаблон дороги, что бы отображались ЧПУ ссылки в дороге?
Название: Re: ЧПУ в каталоге товаров
Отправлено: alexandr от 08 Август 2013, 10:13:36
RewriteRule   ^c(\d+)/([a-z0-9_-]+)/ index.php?sitepage=catalogpage&cid=$1 [QSA,L]

вот тут повнимательней все проверь...
Добрый день.
Установил второй каталог. Использую ЧПУ. Для вывода категорий соответственно две страницы. И получается так, что для какой первой страницы пропишешь ЧПУ, тот каталог и работает.
Что надо дописать, что бы заработало на всех страницах?
Название: Re: ЧПУ в каталоге товаров
Отправлено: bubek от 08 Август 2013, 10:35:42
Напишите сюда ID страниц каталогов и правила ЧПУ для них
Название: Re: ЧПУ в каталоге товаров
Отправлено: alexandr от 08 Август 2013, 11:20:27
Напишите сюда ID страниц каталогов и правила ЧПУ для них
RewriteRule   ^i(\d+)/([a-z0-9_-]+)/ index.php?sitepage=stabilizator_lider&itemid=$1 [QSA,L]
RewriteRule   ^i(\d+)/([a-z0-9_-]+)/ index.php?sitepage=transformatory&itemid=$1 [QSA,L]
RewriteRule   ^c(\d+)/([a-z0-9_-]+)/ index.php?sitepage=stabilizator_lider&cid=$1 [QSA,L]
RewriteRule   ^c(\d+)/([a-z0-9_-]+)/ index.php?sitepage=transformatory&cid=$1 [QSA,L]
Название: Re: ЧПУ в каталоге товаров
Отправлено: bubek от 08 Август 2013, 11:28:27
 L - означает последнее правило, попробуйте убрать первые три.
Название: Re: ЧПУ в каталоге товаров
Отправлено: alexandr от 08 Август 2013, 11:34:44
L - означает последнее правило, попробуйте убрать первые три.
не помогает. вот стоит первая страница, на ней все и показывается. а если вторую поставить первой, то показывается другая. может какой оператор есть "или"
Название: Re: ЧПУ в каталоге товаров
Отправлено: alexandr от 08 Август 2013, 12:49:57
подскажите кто нибудь пожалуйста.
Название: Re: ЧПУ в каталоге товаров
Отправлено: bubek от 08 Август 2013, 15:13:11
Проверил на демо сайте, все работает.
В шаблонах вы что вместо %link% ставите?
Название: Re: ЧПУ в каталоге товаров
Отправлено: alexandr от 08 Август 2013, 21:28:44
Проверил на демо сайте, все работает.
В шаблонах вы что вместо %link% ставите?
/c%id%/%uri_value%/
А у меня не работает, и все. И менял местами. и убирал L, и ставил C - ничего. Короче какая строка первая стоит, та и работает.
Название: Re: ЧПУ в каталоге товаров
Отправлено: bubek от 09 Август 2013, 09:13:14
/c%id%/%uri_value%/
Это в обоих каталогах?
нужно чтобы в одном было uri а в другом примеру uri2
Название: Re: ЧПУ в каталоге товаров
Отправлено: alexandr от 09 Август 2013, 09:30:18
/c%id%/%uri_value%/
Это в обоих каталогах?
нужно чтобы в одном было uri а в другом примеру uri2
Так ото происходит и при переходе ссылки в тексте. А в свойствах категории у меня тоже uri. Это не здесь получается. Я перехожу в каталог во второй, а меня сбрасывает система на главную.
Название: Re: ЧПУ в каталоге товаров
Отправлено: bubek от 09 Август 2013, 09:37:47
Сделайте разные свойства для разных каталогов как для товаров, так и для категорий -
1-й каталог - uri
2-й каталог -  uri2.
В шаблонах пропишите
1-й каталог:  /c%id%/%uri_value%/  и /i%item_id%/%uri_value%/
2-й:  /c%id%/%uri2_value%/  и /i%item_id%/%uri2_value%/

в .htaccess перед существующим RewriteRule дописываем:
RewriteRule   ^c(\d+)/([a-z0-9_-]+)/ index.php?sitepage=transformatory&cid=$1 [QSA,L]
RewriteRule   ^i(\d+)/([a-z0-9_-]+)/ index.php?sitepage=transformatory&itemid=$1 [QSA,L]
RewriteRule   ^c(\d+)/([a-z0-9_-]+)/ index.php?sitepage=stabilizator_lider&cid=$1 [QSA,L]
RewriteRule   ^i(\d+)/([a-z0-9_-]+)/ index.php?sitepage=stabilizator_lider&itemid=$1 [QSA,L]
Название: Re: ЧПУ в каталоге товаров
Отправлено: alexandr от 09 Август 2013, 11:03:42
Сделайте разные свойства для разных каталогов как для товаров, так и для категорий -
1-й каталог - uri
2-й каталог -  uri2.
В шаблонах пропишите
1-й каталог:  /c%id%/%uri_value%/  и /i%item_id%/%uri_value%/
2-й:  /c%id%/%uri2_value%/  и /i%item_id%/%uri2_value%/

в .htaccess перед существующим RewriteRule дописываем:
RewriteRule   ^c(\d+)/([a-z0-9_-]+)/ index.php?sitepage=transformatory&cid=$1 [QSA,L]
RewriteRule   ^i(\d+)/([a-z0-9_-]+)/ index.php?sitepage=transformatory&itemid=$1 [QSA,L]
RewriteRule   ^c(\d+)/([a-z0-9_-]+)/ index.php?sitepage=stabilizator_lider&cid=$1 [QSA,L]
RewriteRule   ^i(\d+)/([a-z0-9_-]+)/ index.php?sitepage=stabilizator_lider&itemid=$1 [QSA,L]
Все равно, воспринимает как один каталог.
Если стоит первым transformatory, то воспринимается этот каталог, а если наоборот, другой.
Название: Re: ЧПУ в каталоге товаров
Отправлено: alexandr от 09 Август 2013, 11:47:01
Сделайте разные свойства для разных каталогов как для товаров, так и для категорий -
1-й каталог - uri
2-й каталог -  uri2.
В шаблонах пропишите
1-й каталог:  /c%id%/%uri_value%/  и /i%item_id%/%uri_value%/
2-й:  /c%id%/%uri2_value%/  и /i%item_id%/%uri2_value%/

в .htaccess перед существующим RewriteRule дописываем:
RewriteRule   ^c(\d+)/([a-z0-9_-]+)/ index.php?sitepage=transformatory&cid=$1 [QSA,L]
RewriteRule   ^i(\d+)/([a-z0-9_-]+)/ index.php?sitepage=transformatory&itemid=$1 [QSA,L]
RewriteRule   ^c(\d+)/([a-z0-9_-]+)/ index.php?sitepage=stabilizator_lider&cid=$1 [QSA,L]
RewriteRule   ^i(\d+)/([a-z0-9_-]+)/ index.php?sitepage=stabilizator_lider&itemid=$1 [QSA,L]
Все равно, воспринимает как один каталог.
Если стоит первым transformatory, то воспринимается этот каталог, а если наоборот, другой.

Удалил второй каталог. Создал новый, сделал все разные наименования. Опять не воспринимает каталог, который в htccess стоит вторым. Может еще где копать надо?
Название: Re: ЧПУ в каталоге товаров
Отправлено: bubek от 09 Август 2013, 11:58:45
Может еще где копать надо?
Конечно копайте :D, у меня же работает.
Проверяйте Ваши шаблоны и настройки групп, категорий, действий и т.д.
Название: Re: ЧПУ в каталоге товаров
Отправлено: alexandr от 09 Август 2013, 12:28:37
Может еще где копать надо?
Конечно копайте :D, у меня же работает.
Проверяйте Ваши шаблоны и настройки групп, категорий, действий и т.д.
а напишите пож свой htaccess. может у меня чего не хватает.
Название: Re: ЧПУ в каталоге товаров
Отправлено: bubek от 09 Август 2013, 12:32:14
Поздно вечером только, ибо экспериментировал на ноутбуке, а он дома.
Название: Re: ЧПУ в каталоге товаров
Отправлено: alexandr от 09 Август 2013, 13:04:34
Поздно вечером только, ибо экспериментировал на ноутбуке, а он дома.
Ага. Я просто думаю, может там что то прописано из редиректов, которые не дают уходить на второй каталог.
Название: Re: ЧПУ в каталоге товаров
Отправлено: bubek от 09 Август 2013, 13:06:58
Нет я ничего туда больше не добавлял, все как в wiki, скорей всего дело в шаблонах и свойствах категорий и товаров
Название: Re: ЧПУ в каталоге товаров
Отправлено: bubek от 10 Август 2013, 20:47:21
Значит так, в шаблонах вместо %link%пишем:
страница stabilizator_lider:
для товара:
/it%item_id%/%uri2_value%/ 
для категорий:
/cat%id%/%uri2_value%/
Страница transformatory:
для товара:
/i%item_id%/%uri_value%/ 
для категорий:
/c%id%/%uri_value%/ Должны быть свойства в первом случае uri2, во втором uri

в  htaccess пишем:
RewriteBase /
RewriteEngine On

RewriteRule   ^cat(\d+)/([a-z0-9_-]+)/ index.php?sitepage=stabilizator_lider&cid=$1 [QSA,L]
RewriteRule   ^it(\d+)/([a-z0-9_-]+)/ index.php?sitepage=stabilizator_lider&itemid=$1 [QSA,L]
RewriteRule   ^c(\d+)/([a-z0-9_-]+)/ index.php?sitepage=transformatory&cid=$1 [QSA,L]
RewriteRule   ^i(\d+)/([a-z0-9_-]+)/ index.php?sitepage=transformatory&itemid=$1 [QSA,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule   ^[a-z0-9_-]*\.html$ index.php

AddDefaultCharset UTF-8
AddType text/x-component .htc

Название: Re: ЧПУ в каталоге товаров
Отправлено: alexandr от 12 Август 2013, 09:53:42
Написал так. Теперь работает только второй каталог. А первый не работает.
Название: Re: ЧПУ в каталоге товаров
Отправлено: bubek от 13 Август 2013, 09:43:20
Может еще где копать надо?
Конечно копайте :D, у меня же работает.
Проверяйте Ваши шаблоны и настройки групп, категорий, действий и т.д.
Название: Re: ЧПУ в каталоге товаров
Отправлено: alexandr от 13 Август 2013, 11:01:57
Может еще где копать надо?
Конечно копайте :D, у меня же работает.
Проверяйте Ваши шаблоны и настройки групп, категорий, действий и т.д.
Спасибо. Разобрался. Запутался в буквочках.)
Название: Re: ЧПУ в каталоге товаров
Отправлено: ermy от 18 Август 2014, 12:10:11
Всем привет!
Нужна помощь!

В 3,10 ЧПУ у меня не работает. Сделал как сказано в wiki. Ссылка формируется из списка товаров корректно, но переход по ней подвешивает сервер - долго думает после чего подгружает контент, но картинки и сам дизайн не подгружает.

На всякий случай, .htaccess в корне выглядит так:

RewriteBase /
RewriteEngine On


RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule   ^i(\d+)/([a-z0-9_-]+)/ index.php?sitepage=catalogpage&itemid=$1 [QSA,L]

RewriteRule   ^[a-z0-9_-]*\.html$ index.php

AddDefaultCharset UTF-8
AddType text/x-component .htc

В настройках хостинга тоже есть какие-то опции, в которых мне не разобраться (см. скриншот), может в них дело?



Название: Re: ЧПУ в каталоге товаров
Отправлено: bubek от 18 Август 2014, 13:17:27
Попробуйте прописать тег <base>
<base href="http://yoursite/">
Название: Re: ЧПУ в каталоге товаров
Отправлено: ermy от 18 Август 2014, 15:10:06
Выдает 404 ошибку.  Может ошибка где-то здесь RewriteRule   ^c(\d+)/([a-z0-9_-]+)/ index.php?sitepage=catalogpage&cid=$1 [QSA,L] ?
Название: Re: ЧПУ в каталоге товаров
Отправлено: bubek от 18 Август 2014, 15:22:26
Страница каталога catalogpage.html ?
Название: Re: ЧПУ в каталоге товаров
Отправлено: ermy от 18 Август 2014, 15:41:36
У меня страница где выводятся товары - portfolioitem.html
С учетом этого подправил правило и теперь оно выглядит так:
RewriteRule   ^c(\d+)/([a-z0-9_-]+)/ index.php?sitepage=portfolioitem&cid=$1 [QSA,L]

404 ошибка.

У меня вывод идет через фильтр (список формируется фильтром) - по идее не должно влиять ?
Название: Re: ЧПУ в каталоге товаров
Отправлено: bubek от 18 Август 2014, 15:49:30
там можно проверить - выведите товары без фильтра (как обычно)
Название: Re: ЧПУ в каталоге товаров
Отправлено: ermy от 18 Август 2014, 15:52:52
Все, нашел ошибку ))
Корректная строчка
RewriteRule   ^i(\d+)/([a-z0-9_-]+)/ index.php?sitepage=portfolioitem&itemid=$1 [QSA,L] , а не
RewriteRule   ^c(\d+)/([a-z0-9_-]+)/ index.php?sitepage=portfolioitem&cid=$1 [QSA,L]

bubek, большое спасибо за участие!
Название: Re: ЧПУ в каталоге товаров
Отправлено: bubek от 18 Август 2014, 15:58:54
 :D ага товары - itemid , категории - cid
Название: Re: ЧПУ в каталоге товаров
Отправлено: qwestor от 09 Сентябрь 2014, 00:05:37
После смены параметра uri товар все еще открывается по старой ссылке.
Пример -
http://pechnoumir.ru/i876/samson_6ewd/
http://pechnoumir.ru/i876/classic-prestige-16-kvt/
Хотя в Базе данных uri  assic-prestige-16-kvt вообще уже не существует.

htaccess - стандартный
RewriteBase /
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule   ^i([0-9]+)/([a-z0-9_-]+)/ index.php?sitepage=subpage&itemid=$1 [QSA,L]
RewriteRule   ^c([0-9]+)/([a-z0-9_-]+)/ index.php?sitepage=subpage&cid=$1 [QSA,L]
RewriteRule   ^[a-z0-9_-]*\.html$ index.php

AddDefaultCharset UTF-8
AddType text/x-component .htc


Помогите убить старый урл пожалуйста.
Название: Re: ЧПУ в каталоге товаров
Отправлено: Rinat от 09 Сентябрь 2014, 10:07:03
Он также открывается и при
http://pechnoumir.ru/i876/luboe_slovo/
С данной реализацией он не убьется, к сожалению.
Название: Re: ЧПУ в каталоге товаров
Отправлено: gold900 от 09 Февраль 2018, 21:00:40
А как можно сделать вид url категории /vizitki.html вместо /c2/vizitki/ ???
Название: Re: ЧПУ в каталоге товаров
Отправлено: gold900 от 20 Июнь 2018, 01:05:45
Разобрался с прогером как сделать нужный чпу.
Если кому надо, пишите в личку