LINUX.ORG.RU

Сломался ЧПУ в битрикс

 ,


0

1

Хотела просто убрать «#variant/41749/» в url

/verkhnyaya_odezhda/kurtki/kurtka_dlya_devochek_fioletovyy_122/#variant/41749/

обратилась спросить где это можно настроить\убрать. посоветовали в инфоблоке в URL страницы детального просмотра: в место
#SITE_DIR#/#SECTION_CODE_PATH#/#ELEMENT_CODE#
поставить
#SITE_DIR#/#SECTION_CODE_PATH#/#SECTION_CODE#
, улр поломалась. потом сказали нужно менять и в компоненте я поменяла
'detail'=>'#SECTION_CODE_PATH#/#ELEMENT_CODE#'
на
'detail'=>'#SECTION_CODE_PATH#/#SECTION_CODE#'
все равно не работала. сказали поставить галочку в «Разрешить выбор основного раздела для привязки», все равно не работала. Затем я все обратно вернула. Но все сломалось и теперь страница показывает 404, хотя ссылка правильная, сбрасывала кэш. Что делать как все исправить?

★★

чпу

Готовься уворачиваться от помидоров: под чпу по дефолту здесь понимают совсем другое.

Deleted
()
Ответ на: комментарий от Deleted

ок, спасибо за предупреждение

gssomi ★★
() автор топика
Ответ на: комментарий от gssomi

Не понял вопрос :) Если ты про скрин, то там девелоперская версия Firefox под оффтопиком.

Если про вторую ссылку, то я тебе скинул ссылку на курс от 1С где про включение ЧПУ говорится.

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

shrub ★★★★★
()
Ответ на: комментарий от shrub

на первую, где скрин. Спасибо. Его и включили сразу. мне нужно было убрать «#variant/41749/». Хмм, индекс, надо поискать спасибо.

gssomi ★★
() автор топика

1 В компоненте надо менять если у тебя используется комплексный компонент. Хотя лучше избавиться от него если в нем нет необходимости. В остальных случаях не лезь туда.

2 #SITE_DIR#/#SECTION_CODE_PATH#/#SECTION_CODE# - ты понимаешь что ты тут написала? Домен/ПутьИзСимвольныхКодовРазделов/КодРаздела - как по этому пути ты собираешься индентифицировать элемент раздела? Хотя бы подумай - у тебя один и тот же УРЛ будет соотвествовать ВСЕМ элементам в этом разделе.

3

Затем я все обратно вернула. Но все сломалось и теперь страница показывает 404, хотя ссылка правильная, сбрасывала кэш. Что делать как все исправить?

Значит не все. Во-первых оставь в покое сейчас настройки ИБ. Если у тебя 404 - то компонент не находит элемент. Это точно не зависит от настроек ИБ. Во-вторых: какой компонент и давай сюда свой urlrewrite.php (он в корне лежит). Тогда и поговорим дальше.

Suntechnic ★★★★★
()
Ответ на: комментарий от gssomi

Его и включили сразу. мне нужно было убрать «#variant/41749/»

Что это вообще?

Хмм, индекс, надо поискать спасибо.

Модуль поиск. Переиндексировать сайт. Тебе это сейчас не нужно. Не заморачивайся. Это вообще не нужно при смене типа URL - все и так будет работать - это миф, что это нужно делать.

Suntechnic ★★★★★
()
Ответ на: комментарий от Suntechnic

Что это вообще?

оно пришло когда интегрировали с 1С. видимо я не там галочку поставила.

gssomi ★★
() автор топика
Ответ на: комментарий от Suntechnic

давай сюда свой urlrewrite.php (он в корне лежит).

http://pastebin.com/gkVER3GE

как по этому пути ты собираешься индентифицировать элемент раздела?

я и не собиралась идентифицировать.

gssomi ★★
() автор топика
Ответ на: комментарий от Suntechnic

все вернулось, спасибо почему то удалилась массив каталога.

array(
		"CONDITION" => "#^/.#",
		"RULE" => "",
		"ID" => "vm:vum.catalog",
		"PATH" => "/catalog/index.php",
	),


а вот с «#variant/41749/» проблема не решилась

gssomi ★★
() автор топика

А если попробовать снова сделать интеграцию только настроив правильно.

gssomi ★★
() автор топика
Ответ на: комментарий от gssomi
array(
		"CONDITION" => "#^/.#",
		"RULE" => "",
		"ID" => "vm:vum.catalog",
		"PATH" => "/catalog/index.php",
	),

Ппц... у тебя роутинг от корня что ли? И как? Работает?

Вообще в такой ситуации тебе надо смотреть в работу вот этого вот: vm:vum.catalog. Это досталось от безвестных создателей? Ты же понимаешь что это не штатный компонент и его авторы не разрабы Битрикс? Вот у тебя в реврайте правило которое заворачивает урлы компоненту vm:vum.catalog и предоставляет ему право решать что находится по ним. Следовательно весь роутинга каталога у тебя внутри вот этой кастомной поделки vm:vum.catalog. Зачем в этом случае крутить настройки ИБ? Ты уверена, что у тебя vm:vum.catalog их использует?

Дай хотя бы сюда его параметры.

А теперь по делу - я не знаю как может повлиять интеграция с 1С на урлы. Это просто невозможно при правильный настройках всего.

Однако я подозреваю, что у тебя просто код элемента

kurtka_dlya_devochek_fioletovyy_122/#variant/41749/
В итоге при роутинге #SITE_DIR#/#SECTION_CODE_PATH#/#ELEMENT_CODE# ты и получаешь такие URL'ы у элементов. Естественно они не могут правильно обрабатываться.

1 Проверь элемент каталога в админке - убедись что я прав и поле Символьный код действительно имеет такой вид: «kurtka_dlya_devochek_fioletovyy_122/#variant/41749/». Или посмотри это же самое в файле импорта. Знаешь где он? И покажи из файла импорта 1 товар.

2 Если это так, то у тебя 2 пути - в настройках ИБ, на вкладке Поля настроить обработку символьных кодов элементов, сделав их обязательными и прописав подмену символов дабы твои kurtka_dlya_devochek_fioletovyy_122/#variant/41749/ превращались в kurtka_dlya_devochek_fioletovyy_122-variant-41749. Но это будет работать если у тебя штатный импорт. Если и там какой-то vm, то только просить разраба 1C чтобы он обрабатывал коды.

Suntechnic ★★★★★
()
Ответ на: комментарий от Suntechnic

Проверь элемент каталога в админке - убедись что я прав и поле Символьный код действительно имеет такой вид: «kurtka_dlya_devochek_fioletovyy_122/#variant/41749/».

нет символьный код «kurtka_dlya_devochek_fioletovyy_122»

gssomi ★★
() автор топика
Ответ на: комментарий от gssomi

нет символьный код «kurtka_dlya_devochek_fioletovyy_122»

Тогда #variant/41749 не может быть быть следствием импорта из 1С. По крайней мере не вижу для этого никаких возможностей.

параметры компонента?

Да, параметры компонента. Просто скопируй их сюда целиком.

Suntechnic ★★★★★
()
Ответ на: комментарий от Suntechnic

нашла в просторах классов

/** Страница элемента */
public function getPageUrl()
	{
	  if (in_array('OFFER', $this->getProductType())) {
	     if (($_variant = $this->getSelectedVariantOffersOfProduct())) {
		 return sprintf('%s/#variant/%s/', rtrim($this->getFieldByKey('DETAIL_PAGE_URL'), '/'), $_variant->getId());
	     }
	  }
		
	  if (in_array('OFFER_ITEM', $this->getProductType())) {
	     $parent = $this->getProduct();
			
	     if ($parent) {
		return sprintf('%s/#variant/%s/', rtrim($parent->getFieldByKey('DETAIL_PAGE_URL'), '/'), $this->getId());
	      }
	  }
		
	  return $this->getFieldByKey('DETAIL_PAGE_URL');
        }


Да, параметры компонента. Просто скопируй их сюда целиком.

<?$APPLICATION->IncludeComponent(
	"vm:vum.catalog",
	"page",
	Array(
		"SORT" => array('SORT'=>'ASC','NAME'=>'ASC'),
		"FILTER" => array('IBLOCK_TYPE'=>SITE_ID,'IBLOCK_CODE'=>'catalog',),
		"SET_TITLE" => "Y",
		"ADD_SECTIONS_CHAIN" => "Y",
		"ADD_ELEMENT_CHAIN" => "Y",
		"SEF_FOLDER" => "/",
		"SEF_URL_TEMPLATES" => array('categories'=>'','sections'=>'#SECTION_CODE#/','section'=>'#SECTION_CODE_PATH#/','detail'=>'#SECTION_CODE_PATH#/#ELEMENT_CODE#/',),
		"VARIABLE_ALIASES" => array('sections'=>array(),'section'=>array(),'detail'=>array()),
		"PAGE" => $_REQUEST['page'],
		"LIMIT_SECTIONS" => 9,
		"LIMIT_SECTION_PRODUCTS" => 9,
		"LIMIT_PRODUCTS" => 9,
		"LIMIT_FILTER_RESULT" => 9
	)
);?>
gssomi ★★
() автор топика
Ответ на: комментарий от gssomi

нашла в просторах классов

Ну вот. Видишь откуда беруться твои /#variant/%s/ ? Что там омжно настройками изменить? И уж точно этот код не 1С добавила. Выпиливай этот хардкор.

Suntechnic ★★★★★
()
Ответ на: комментарий от Suntechnic

вот теперь так. если убрать с кода

if (in_array('OFFER', $this->getProductType())) {
    if (($_variant = $this->getSelectedVariantOffersOfProduct())) {
       return sprintf('%s/', rtrim($this->getFieldByKey('DETAIL_PAGE_URL'), '/'), $_variant->getId());
     }
}

то все норм, но когда жмакаешь на выбор цвета то все рушиться и «verkhnyaya_odezhda/kurtki/kurtka_dlya_devochek_fioletovyy_122/#/kurtka_dlya_devochek_fioletovyy_122_zheltyy_122_122/» вот такой вот урл становиться.

gssomi ★★
() автор топика
Ответ на: комментарий от Deleted

нет, не в гит. надо в пастебин заливать. кстати да, сорян за говнокод.

gssomi ★★
() автор топика
Ответ на: комментарий от Suntechnic

О, да! Спасибо! Так и все починилось. кроме одной, при клике на картинку цвета все становиться вот таким а нужно шоб было таким -_-

gssomi ★★
() автор топика
Ответ на: комментарий от Deleted

man git

Есть же уже специальная система контроля версий для женщин, hg называется.

d_a ★★★★★
()

не решилось у меня /verkhnyaya_odezhda/ раздел показует 404. =( где я что испортила.

gssomi ★★
() автор топика
Ответ на: комментарий от Deleted

Что ТС понимает под «чпу»? Я уже расчехлил свой ключ на 48 для наладки станка, а тут облом какой-то намечается.

anonymous
()
Ответ на: комментарий от INFOMAN

не могу, не в моей компетенции.

gssomi ★★
() автор топика
Ответ на: комментарий от anonymous

Я уже расчехлил свой ключ на 48 для наладки станка

А как ты представляешь себе ЧПУ станок с битрикс? o_0

anonymous
()

о все заработала, без понятия как. и вопрос почему удаляется массив

array(
		"CONDITION" => "#^/.#",
		"RULE" => "",
		"ID" => "vm:vum.catalog",
		"PATH" => "/catalog/index.php",
	),

в urlrewrite.php?

gssomi ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.