Lorsque vous effectuez une redirection /index.php?controller=manufactuer|supplier (sans id), aucune redirection canonique n'est prise en compte.
Ex:
https://domain.tld/marques => mène à la liste des manufacturer (marques)
https://domain.tld/index.php?controller=manufacturer => mène à la liste des manufacturer (marques)
Aucun redirection canonique n'intervient dans le second cas

Seul le cas lorsqu'un id est fourni est implanté dans les contrôleurs.
Remplacer dans ManufacturerController.php:
public function canonicalRedirection($canonicalURL = '')
{
if (Tools::getValue('live_edit')) {
return;
}
if (Validate::isLoadedObject($this->manufacturer)) {
parent::canonicalRedirection($this->context->link->getManufacturerLink($this->manufacturer));
}
}
par
public function canonicalRedirection($canonicalURL = '')
{
if (Tools::getValue('live_edit')) {
return;
}
if (!Validate::isLoadedObject($this->manufacturer) && (int)Tools::getValue('id_manufacturer')) {
$this->manufacturer = new Manufacturer((int)Tools::getValue('id_manufacturer'), $this->context->language->id);
}
if (Validate::isLoadedObject($this->manufacturer)) {
return parent::canonicalRedirection($this->context->link->getManufacturerLink($this->manufacturer));
}
parent::canonicalRedirection($canonicalURL);
}
Comme ces 2 là font toujours la paire, la même ligne est à ajouter dans SupplierController.php
public function canonicalRedirection($canonicalURL = '')
{
if (Tools::getValue('live_edit')) {
return;
}
if (!Validate::isLoadedObject($this->supplierr) && (int)Tools::getValue('id_supplier')) {
$this->supplier = new Supplier((int)Tools::getValue('id_supplier'), $this->context->language->id);
}
if (Validate::isLoadedObject($this->supplier)) {
parent::canonicalRedirection($this->context->link->getSupplierLink($this->supplier));
}
parent::canonicalRedirection($canonicalURL);
}