VirtueMart Forum

VirtueMart 2 + 3 + 4 => Virtuemart Development and bug reports => Topic started by: worknmn on June 18, 2016, 09:47:54 AM

Title: Not generate a 404 error for sub-categories.
Post by: worknmn on June 18, 2016, 09:47:54 AM
Observed on versions 3.0.12 and above.

I show on a demo website http://demo.virtuemart.net/wear/zxczxc

Will not be generated 404 error...

For product - http://demo.virtuemart.net/balldsfsdf-detail

Will not be generated 404 error! It's not funny for SEO!
Title: Re: Not generate a 404 error for sub-categories.
Post by: jenkinhill on June 18, 2016, 12:17:05 PM
Discussed many times before. That redirect is used so that sales are not likely to be lost. If you want to use the default Joomla error handler then simply deselect "Enable VirtueMart 404 error handling" in Configuration/Shop
Title: Re: Not generate a 404 error for sub-categories.
Post by: worknmn on June 18, 2016, 16:44:14 PM
Option "Enable VirtueMart 404 error handling" deselected. That's why i wrote about this error.
Title: Re: Not generate a 404 error for sub-categories.
Post by: worknmn on June 18, 2016, 16:53:36 PM
Look at code from router. There are all way from none existing URLs show category from first used in menu.

$last_elem = end($segments);
$slast_elem = prev($segments);
if ( (substr($last_elem, -(int)$helper->seo_sufix_size ) == $helper->seo_sufix)
|| ($last_elem=='notify' && substr($slast_elem, -(int)$helper->seo_sufix_size ) == $helper->seo_sufix) ) {

$vars['view'] = 'productdetails';
if($last_elem=='notify') {
$vars['layout'] = 'notify';
array_pop($segments);
}

if (!$helper->use_id ) {
$product = $helper->getProductId($segments ,$helper->activeMenu->virtuemart_category_id);
$vars['virtuemart_product_id'] = $product['virtuemart_product_id'];
$vars['virtuemart_category_id'] = $product['virtuemart_category_id'];
//vmdebug('View productdetails, using case !$helper->use_id',$vars,$helper->activeMenu);
}
elseif (isset($segments[1]) ){
$vars['virtuemart_product_id'] = $segments[0];
$vars['virtuemart_category_id'] = $segments[1];
//vmdebug('View productdetails, using case isset($segments[1]',$vars);
} else {
$vars['virtuemart_product_id'] = $segments[0];
$vars['virtuemart_category_id'] = $helper->activeMenu->virtuemart_category_id ;
//vmdebug('View productdetails, using case "else", which uses $helper->activeMenu->virtuemart_category_id ',$vars);
}



} elseif (!$helper->use_id && ($helper->activeMenu->view == 'category' ) )  {
$vars['virtuemart_category_id'] = $helper->getCategoryId (end($segments) ,$helper->activeMenu->virtuemart_category_id);
$vars['view'] = 'category' ;

} elseif (isset($segments[0]) && ctype_digit ($segments[0]) || $helper->activeMenu->virtuemart_category_id>0 ) {
$vars['virtuemart_category_id'] = $segments[0];
$vars['view'] = 'category';


} elseif ($helper->activeMenu->virtuemart_category_id >0 && $vars['view'] != 'productdetails') {
$vars['virtuemart_category_id'] = $helper->activeMenu->virtuemart_category_id ;
$vars['view'] = 'category';

} elseif ($id = $helper->getCategoryId (end($segments) ,$helper->activeMenu->virtuemart_category_id )) {

// find corresponding category . If not, segment 0 must be a view
$vars['virtuemart_category_id'] = $id;
$vars['view'] = 'category' ;
} else {
$vars['view'] = $segments[0] ;
if ( isset($segments[1]) ) {
$vars['task'] = $segments[1] ;
}
}
Title: Re: Not generate a 404 error for sub-categories.
Post by: jenkinhill on June 18, 2016, 17:09:56 PM
I'm using VM3.0.17 and it does return 404 when the VM 404 setting is off - this is a test version from SVN.  The next stable public version will be 3.0.18
Title: Re: Not generate a 404 error for sub-categories.
Post by: worknmn on June 18, 2016, 23:09:55 PM
You tested local or public site? show me please. I show you on 3.0.16 vm, joomla 3.5.1

http://clip2net.com/s/3zlFN22 - option off

http://m-sumka.ru/katalog/platya/povsednevnye-platya/sdfsdfsdf status 200 OK!

I think need send header's 404, but show category like it used now. It solve all problems.
Title: Re: Not generate a 404 error for sub-categories.
Post by: juanki on June 19, 2016, 14:09:46 PM
Quote from: jenkinhill on June 18, 2016, 17:09:56 PM
I'm using VM3.0.17 and it does return 404 when the VM 404 setting is off - this is a test version from SVN.  The next stable public version will be 3.0.18

Hello, will 3.0.18 be a public stable version recommended to be used in a live site?. Any estimated date for it to be published? Thanks