Если вы столкнулись с проблемой выпадания 404 ошибки после совершения поискового запроса в форме, которая находится на странице категории, то проблема может быть следующая:
Данные, которые передаются POST-запросом не полные.
У меня код формы поиска выглядел так:
<form action="<?php echo JRoute::_ ('index.php?option=com_virtuemart&view=category&limitstart=0&virtuemart_category_id=' . $this->category->virtuemart_category_id); ?>" method="get">
<div class="virtuemart_search">
<?php echo $this->searchcustom ?>
<br/>
<br/>
<div class="clear"></div>
<?php echo $this->searchcustomvalues ?>
<div class="clear"></div>
<br/><input name="keyword" class="inputbox" type="text" size="20" value="<?php echo $this->keyword ?>"/>
<input type="submit" value="<?php echo JText::_ ('COM_VIRTUEMART_SEARCH') ?>" class="button" onclick="this.form.keyword.focus();"/>
</div>
<input type="hidden" name="search" value="true"/>
<input type="hidden" name="view" value="category"/>
</form>
Добавили скрытое поле с нужными параметрами:
<input type="hidden" name="option" value="com_virtuemart"/>
Теперь ошибки нет.