Всё, проблема с редиректами окончательно решена! 

Ответ я нашел на зарубежном форуме, рекомендую всем в закладки куда-то сохранить:
https://forum.virtuemart.net/index.php?topic=119171.0Это действительно VirtueMart пакостит, так решили его разработчики и в новой версии эту особенность лишь смягчили, но не убрали до конца. В общем, в файле /components/com_virtuemart/virtuemart.php в самом конце необходимо найти строку (обычно 110-111):
$mainframe->redirect(JRoute::_ ('index.php?option=com_virtuemart&view=virtuemart', FALSE));
закомментировать ее и на ее место вписать следующий код:
JError::raise(E_ERROR,'404','Not found');
$mainframe->close();
Вот тогда будет нормальная 404-я вылезать, которая соответствует тому, что генерит error.php в шаблоне.
Voland писал:
И вообще - почему 2,5,6 а не 2,5,28?
Но ведь 2.5.6 новее чем 2.5.28! 

SeBun писал:
Попробуйте обноаить версию Joomla, предварительно сделав бекап. Если не поможет, проблема не у хостера а в вашем коде.
Как оказалось, это VirtueMart пакостил, и заложили в него эту пакость разработчики, которые посчитали что вместо 404-й должна главная вылезти. А почему если бы обновление Joomla не помогло, то проблема была бы не у хостера? (Или Вы опечатались и хотели сказать, что как раз у хостера?)
...с этой проблемой покончено. Но клиент хочет кастомизированную 404-ю, я хочу для этой цели запрячь модуль Qlue Custom 404, установка проходит гладко. Однако при попытке зайти в админку модуля выдаёт:
Fatal error: Call to a member function get() on a non-object in /home/cp062426/public_html/administrator/components/com_qlue404/controller.php on line 31
Код в этом месте гласит:
class Qlue404Controller extends JControllerLegacy {
....
public function display($cachable = false, $urlparams = false)
{
  ....
  $view   = $this->input->get('view', 'customs'); //Вот тут и возникает ошибка!
  $layout = $this->input->get('layout', 'default');
  $id     = $this->input->getInt('id');
}
Как заставить этот удобный компонент нормально заработать, устранить ошибку?