Перейти к содержанию
Форум поддержки пользователей VamShop

404 ошибка на странице фильтров


Рекомендуемые сообщения

Добрый день
Подскажите, пожалуйста, такая ситуация:
На страницах фильтра, выдает ошибку 404
6ZPan1Eb0Zz35w3Wc6Fol4KtKnbTXKg6pCkbme8a

Товары на данной странице не отображаются, т.к. значение выбранных фильтров не пересекаются.

Как это можно исправить и заменить код 404 на 200 на страницах не пересекающихся фильтров?

Пример:
https://vamvelosiped.ru/products_filte...8/25-28%29

Спасибо

Ссылка на сообщение
Поделиться на другие сайты

Попробуйте удалить код в /includes/application_top.php внизу:

$url = vam_href_link(basename($PHP_SELF), vam_get_all_get_params(array ('page', 'cPath', 'info', 'x', 'y')));

if ($cID && PRODUCT_LIST_RECURSIVE == 'false') {

$listing_sql = "select p.products_fsk18, p.products_shippingtime, p.products_model, p.products_ean, pd.products_name, m.manufacturers_name, p.products_quantity, p.products_image, p.products_weight, pd.products_short_description, pd.products_description, p.products_id, p.manufacturers_id, p.products_price, p.products_vpe, p.products_vpe_status, p.products_vpe_value, p.products_discount_allowed, p.products_tax_class_id from products_description pd, products_to_categories p2c, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id left join specials s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '1' and p2c.categories_id = '".$cID."' ORDER BY p.products_price DESC";
$max_result = MAX_DISPLAY_SEARCH_RESULTS;
$listing_split = new splitPageResults($listing_sql, (int)$_GET['page'], $max_result, 'p.products_id');
$number_of_pages = ceil($listing_split->number_of_rows / $max_result);

if (SEARCH_ENGINE_FRIENDLY_URLS == 'true') {
$end_page_url = $url.'/page/'.$number_of_pages;
} else {
$end_page_url = $url.'?page='.$number_of_pages;
}
	  if($number_of_pages < $_GET['page']){
			header("HTTP/1.1 301 Moved Permanently");
			header("Location: $end_page_url");
			exit();
	  }
}
	  
if(trim($_GET['page']) == '1' && $url != ''){
			header("HTTP/1.1 301 Moved Permanently");
			header("Location: $url");
			exit();
}

if($_SERVER['REQUEST_URI'] != DIR_WS_CATALOG && $PHP_SELF == DIR_WS_CATALOG.'index.php' && !$_GET ){
			header("HTTP/1.1 301 Moved Permanently");
			header("Location: ".DIR_WS_CATALOG."");
			exit();
}

Что б выяснить, в этом коде дело или нет.

Ссылка на сообщение
Поделиться на другие сайты

Да, у Вас старая версия, ещё не было этого кода.

Попробовал Вашу ссылку, пишет, что нет товара.

А как этот глюк проверить?!

Можете проверить на онлайн-демке http://demo.vamshop.ru

Попробуйте, есть там такой глюк?!

Ссылка на сообщение
Поделиться на другие сайты

Этот глюк появляется если выбрать фильтр с нулевым значением,
Я выбираю 2 параметра фильтра, второй выбирается со значением.

В онлайн демке не дает выбрать значения фитра с нулевым значением
http://demo.vamshop.ru/products_filter.php?f2=2+%D1%8F%D1%87%D0%B5%D0%B9%D0%BA%D0%B8%2C+30+%D0%92%D1%82*%D1%87&cat=1&cPath=1
а у нас дает.

https://vamvelosiped.ru/products_filter.php?cat=21&cPath=4_21&f75=20&f213=%D0%97%D0%B8%D0%BC%D0%BD%D0%B8%D0%B5

Ссылка на сообщение
Поделиться на другие сайты

Я по Вашей ссылке тоже по кликал на значения с 0 товаров, пишет, что ничего не найдено.

Так а что не так?!

Раз 0 значений этого фильтра, то и выводится текст, что товары не найдены.

Всё логично ведь.

Ссылка на сообщение
Поделиться на другие сайты

Все логично, но эта страница, в которой ничего не найдено отдает 404 ответ
Можно ли  как то исправить и заменить код 404 на 200 на таких страницах?
Либо не давать возможности выбирать нулевые значения..

Ссылка на сообщение
Поделиться на другие сайты

Лично я не понимаю, в чём ошибка.

По-моему, всё правильно.

Какой смысл 200 кода на пустой странице?! Хорошо, показали 200 код, но страница ведь без контента, в чём смысл?!

 

Ссылка на сообщение
Поделиться на другие сайты

Так 404 для того и отдаётся, что б не были дубли в поисковиках.

Это не битая ссылка.

404 - значит этой страницы не будет в поисковике, т.е. не будет пустых страниц без контента в поисковике.

Ссылка на сообщение
Поделиться на другие сайты

Добрый день
404 все же могут быть в индексе. А при использовании фильтров, образуется много дублей, которые просто потом засоряют сайт, и он плохо индексируется из-за этого.


Можно ли на нашей версии закрыть такие страницы для пользователей, как это реализовано в обновленном движке?

 

Ссылка на сообщение
Поделиться на другие сайты
18 минуту назад, velos сказал:

Добрый день
404 все же могут быть в индексе. А при использовании фильтров, образуется много дублей, которые просто потом засоряют сайт, и он плохо индексируется из-за этого.


Можно ли на нашей версии закрыть такие страницы для пользователей, как это реализовано в обновленном движке?

 

страницы фильтра закрыты от индексации как в robots.txt так и в коде шаблона 

 

  $robots_tag = '';
  if ( (isset ($_GET['sort'])) || (preg_match ('/[1-9][ad]/', $_GET['sort'])) ) {
    $robots_tag = '<meta name="robots" content="noindex,follow">';
 }

 

Ссылка на сообщение
Поделиться на другие сайты
2 часа назад, KoVaLsKy сказал:

страницы фильтра закрыты от индексации как в robots.txt так и в коде шаблона 

 


  $robots_tag = '';
  if ( (isset ($_GET['sort'])) || (preg_match ('/[1-9][ad]/', $_GET['sort'])) ) {
    $robots_tag = '<meta name="robots" content="noindex,follow">';
 }

 

Добрый день, спасибо
Подскажите, пожалуйста, в каком файле можно посмотреть этот код?

Ссылка на сообщение
Поделиться на другие сайты

/products_filter.php

но он не срабатывает )))

ыыы

открываем  /includes/modules/metatags.php

 

меняем 

<meta name="robots" content="<?php echo META_ROBOTS; ?>" />

на 

<?php if ($robots_tag ==''){ ?>
<meta name="robots" content="<?php echo META_ROBOTS; ?>" />
<?php }else{ echo $robots_tag;} ?>

тогда на странице фильтров будет 

<meta name="robots" content="noindex,follow">

Ссылка на сообщение
Поделиться на другие сайты

Видимо у меня старая версия файла. Такого кода нет.
Александр, можете прислать файлы products_filter.php  и robots.txt, посмотрю как сделано и попробую сделать у нас

Ссылка на сообщение
Поделиться на другие сайты
17 минуту назад, velos сказал:

Видимо у меня старая версия файла. Такого кода нет.
Александр, можете прислать файлы products_filter.php  и robots.txt, посмотрю как сделано и попробую сделать у нас

так возьмите из демо версии 

Ссылка на сообщение
Поделиться на другие сайты
1 час назад, KoVaLsKy сказал:

/products_filter.php

но он не срабатывает )))

ыыы

открываем  /includes/modules/metatags.php

 

меняем 


<meta name="robots" content="<?php echo META_ROBOTS; ?>" />

на 


<?php if ($robots_tag ==''){ ?>
<meta name="robots" content="<?php echo META_ROBOTS; ?>" />
<?php }else{ echo $robots_tag;} ?>

тогда на странице фильтров будет 

<meta name="robots" content="noindex,follow">

Не помогло, больше ничего нигде менять не нужно?

Ссылка на сообщение
Поделиться на другие сайты
35 минуты назад, velos сказал:

Не помогло, больше ничего нигде менять не нужно?

екараный бабай

конечно надо!

products_filter.php

  $robots_tag = '';
  if ( (isset ($_GET['sort'])) || (preg_match ('/[1-9][ad]/', $_GET['sort'])) ) {
    $robots_tag = '<meta name="robots" content="noindex,follow">';
 }

меняем на 

  $robots_tag = '';
  //if ( (isset ($_GET['sort'])) || (preg_match ('/[1-9][ad]/', $_GET['sort'])) ) {
    $robots_tag = '<meta name="robots" content="noindex,follow">';
 //}

 

т.е теперь вся страница  products_filter.php  закрыта от индексации

Ссылка на сообщение
Поделиться на другие сайты
×
×
  • Создать...