[1.5.x],[1.6.x],[1.7.x] Pas de redirection canonical pour page manufacturer & supplier

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

![0_1542402459601_SEO&URL - Modifier   manufacturer.png](/assets/uploads/files/1542402459817-seo-amp-url-modifier-manufacturer.png)

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);
    }

Laisser une réponse