Jump to content


Photo
- - - - -

Дубли JBzoo не выдает 404 . Help

дубли страниц 404 error

6 replies to this topic

#1 Kostya644

Kostya644
  • JBZoo User (rus)
  • User rate: ~
  • posts: 2
  • topics: 1

Posted 29 November 2016 - 09:45

Проблема заключается в дублях страниц (категорий, материалов)

 

За пример возьму свой тестовый сайт для наглядного примера.

 

1. Есть у Jbzoo функция постраничной навигации  (в админке отключение не помогает)

 

Пример чего не должно быть: http://pharmadiscount.ru/aderma/111111(хоть 2, 3 и т.д.)

 

 

2.  Есть материал - http://pharmadiscoun.../aderma/exomega/aderma-exomega-defi

 

По факту мы теперь можем данный материал (/aderma-exomega-defi) приставить к любой категории возьмем 

 

http://pharmadiscount.ru/aderma/primalba/aderma-exomega-defi

 

cannonical отдает верно, но meta property="og остается неверным ниже:

 

<meta property="og:url" content="http://pharmadiscoun...ma-exomega-defi" />

 

 

Хочу чтобы грамотно выдавало 404 ошибку если такого URL по факту нет


  • 0

#2 SmetDenis

SmetDenis
  • Administrators
  • User rate: 139.4
  • posts: 16232
  • topics: 200

Posted 30 November 2016 - 09:02

Проблемы роутинга растут глубоко из проблем, которые несет в себе Joomla.

Роутинг все собираются и собираются переписать. И кажется сподвижки будут только в 3.7

 

Эти проблемы никак не может решить ZOO и тем более JBZoo.

 

У нас есть альтернативное решение - делать редирект или 404 если каноникал не совпадает с текущей страницей.

Это бета-фича. Если захотите попробовать, то рекомендую использовать 2.3.0


  • 1
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#3 romas_s

romas_s
  • JBZoo User (rus)
  • User rate: 0.1
  • posts: 28
  • topics: 7

Posted 03 January 2017 - 16:44

Проблемы роутинга растут глубоко из проблем, которые несет в себе Joomla.

Роутинг все собираются и собираются переписать. И кажется сподвижки будут только в 3.7

 

Эти проблемы никак не может решить ZOO и тем более JBZoo.

 

У нас есть альтернативное решение - делать редирект или 404 если каноникал не совпадает с текущей страницей.

Это бета-фича. Если захотите попробовать, то рекомендую использовать 2.3.0

как можно заменить 404 на 301 редирект через header???

404 странички индексируются гуглом.

делать редирект или 404 если .... редирект через какой код идет? 301?? или через header?


Edited by romas_s, 03 January 2017 - 16:48.

  • 0

#4 SmetDenis

SmetDenis
  • Administrators
  • User rate: 139.4
  • posts: 16232
  • topics: 200

Posted 09 January 2017 - 08:58

как можно заменить 404 на 301 редирект через header???

Я говорил об опции в настройках JBZoo SEF.
  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#5 romas_s

romas_s
  • JBZoo User (rus)
  • User rate: 0.1
  • posts: 28
  • topics: 7

Posted 09 January 2017 - 23:52

куда можно выложить код редиректов через header с использованием регурярных выражений, для SEO дыр Joomla + JbZoo за исключением дыры разбивки товаров на странички, пока не разобрался как получить число страничек на которые разбиваются категории товаров.
и пока не разобрался как заклеить дыру в теге /tag/,  - скрипт предоставленный ниже редиректит со всех страничек с тегами, нужно допилить проверку, есть ли хоть 1 товар удовлетворяющий искомому тегу.

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

 

Собственно сам код:

Вставить в код шаблона, или в отдельный файл и подключить через include_once

<?php 
	$find_klon_url = $_SERVER [HTTP_HOST].$_SERVER[REQUEST_URI]; // текущий url
	//print_r ($find_klon_url); // для проверки
	
	// ########################
	// редирект материалов без категории
	// [a-z0-9-]+ - цифры и буквы повторяющиеся 1+ раз
	// ([a-z0-9-]+)\.  -//-// цикл - повторение символов до первого символа .
	// (([a-z0-9-]+)\.)+ цикл выше описанного, пока не закончатся .
	// [a-z0-9]+ - последняя доменная зона без .
	// [\/] - / в конце домена сайта
	$reg = "/^(([a-z0-9-]+)\.)+[a-z0-9]+[\/]item/i"; // домен + /item
	if ( preg_match ($reg, "$find_klon_url") ) // проверка регулярного выражения
	{
		//echo preg_match ($reg, "$find_klon_url") . "<br>";
		//echo "текущий url <br>" . ($find_klon_url) . "<br><br>";
		$new_url = 'https://'.$_SERVER [HTTP_HOST] . '/uslugi/item' . preg_replace($reg, "" , $find_klon_url);
		//echo "новый измененный url <br>" .($new_url) . "<br><br>";
		header("Location: $new_url"); // редирект на правильную страничку
		exit;
	}
	// ########################
	// редирект idex.php на корень сайта
	
		$reg = "/^(([a-z0-9-]+)\.)+[a-z0-9]+[\/]index.php/i"; // домен + /index.php
	if ( preg_match ($reg, "$find_klon_url") ) // проверка регулярного выражения
	{
		if (strripos($find_klon_url, '?option=com_jmap') !=0) {}
		else 
		{
		//echo preg_match ($reg, "$find_klon_url") . "<br>";
		//echo "текущий url <br>" . ($find_klon_url) . "<br><br>";
		$new_url = 'https://'.$_SERVER [HTTP_HOST];
		//echo "новый измененный url <br>" .($new_url) . "<br><br>";
		header("Location: $new_url"); // редирект на правильную страничку
		exit;
		}
		
	}
	
	// ########################
	// редирект лишнего / в конце url
	$reg = "/\/$/i"; // редирект страничек с лишним / в конце url
	$domen = $_SERVER [HTTP_HOST]."/";
	if ( preg_match ($reg, "$find_klon_url") && $find_klon_url != $domen)
	{
		//echo preg_match ($reg, "$find_klon_url") . "<br>";
		echo "текущий url <br>" . ($find_klon_url) . "<br><br>";
		$new_url = 'https://' . preg_replace($reg, "" , $find_klon_url);
		echo "новый измененный url <br>" .($new_url) . "<br><br>";
		header("Location: $new_url"); // редирект на правильную страничку
		exit;
	}
	// ########################
	// редирект статьи которая находится одновременно в нескольких категориях 
	$reg = "/\?category_id=[0-9]+/i"; // удаляем с url идентификатор дополнительной категории
	if ( preg_match ($reg, "$find_klon_url") )
	{
		//echo preg_match ($reg, "$find_klon_url") . "<br>";
		//echo "текущий url <br>" . ($find_klon_url) . "<br><br>";
		$new_url = 'https://' . preg_replace($reg, "" , $find_klon_url);
		//echo "новый измененный url <br>" .($new_url) . "<br><br>";
		header("Location: $new_url"); // редирект на правильную страничку
		exit;
	}
	// ########################
	// поиск запрещенных символов в url и редирект на главную страницу
	if (strripos($find_klon_url, '?option=com_jmap') !=0) {}
	else if (strripos($find_klon_url, '&') >0
		  OR strripos($find_klon_url, '?') >0   
		  OR strripos($find_klon_url, '//') >0 
		  OR strripos($find_klon_url, '#') >0
		  OR strripos($find_klon_url, '/tag/') >0
		  OR strripos($find_klon_url, 'component') !=0
		    )
	{
		$new_url = 'https://' . $_SERVER [HTTP_HOST];
		header("Location: $new_url"); // редирект на правильную страничку
		exit;
	}
?>

  • 1

#6 SmetDenis

SmetDenis
  • Administrators
  • User rate: 139.4
  • posts: 16232
  • topics: 200

Posted 12 January 2017 - 05:05

romas_s, Жутковато  :)

Это все проверено и железобетонно работает?


  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#7 romas_s

romas_s
  • JBZoo User (rus)
  • User rate: 0.1
  • posts: 28
  • topics: 7

Posted 12 January 2017 - 06:23

В зависимости от используемых расширений код нужно дописывать, в каждом расширении свои косяки, соответственно и свои правила редиректа.
Для каждого сайта код будет свой, но как общий макет сойдет.


  • 0





Also tagged with one or more of these keywords: дубли страниц, 404 error

Click to return to top of page in style!