Articolo aggiornato dal testo originale (Redirect con CTools & moduli storici)
Modulo Redirect (contrib)
In Drupal 11 il modulo contrib Redirect rimane la soluzione più semplice per gestire redirect 301, 302 o 404 tramite interfaccia amministrativa. Dopo averlo installato con Composer e abilitato, si trova l'interfaccia sotto Gestione → Configurazione → Sistema → Redirect.
Da questa pagina basta semplicemente aggiungere un “URL di origine” e scegliere la “Destinazione” e il codice HTTP.
Ecco come installarlo ed abilitarlo:
# Installazione tramite Composer composer require drupal/redirect # Abilitazione del modulo drush en redirect -y
- Interfaccia amministrativa user-friendly
- Import/export di redirect in massa
- Statistiche sui redirect
- Gestione dei redirect 404
- Integrazione con altri moduli
I principali vantaggi di questo modulo sono
- Nessun codice necessario
- Interfaccia grafica completa
- Gestione professionale
- Import/export CSV
Chiaramente in alcuni casi potrebbe non essere la soluzione ottimale in quanto si tratta sempre di una dipendenza esterna e può essere "overkill" per pochi redirect.
Controller Personalizzato
Una alternativa al modulo Redirect è creare un controller personalizzato che gestisce i reindirizzamenti.
File: mio_modulo.routing.yml
mio_modulo.redirect_old path: '/vecchio-percorso' defaults: _controller: '\Drupal\mio_modulo\Controller\RedirectController::toNew' _title: 'Redirect permanente' requirements:
_permission: 'access content'
File: src/Controller/RedirectController.php
<?php
namespace Drupal\mio_modulo\Controller;
use Drupal\Core\Controller\ControllerBase;
use Symfony\Component\HttpFoundation\RedirectResponse;
class RedirectController extends ControllerBase {
/**
* Redirect permanente da /vecchio-percorso a /nuovo-percorso.
*/
public function toNew() {
// Destinazione del redirect (può essere anche una route).
$destination = '/nuovo-percorso';
// Codice HTTP (301 = permanente).
return new RedirectResponse($destination, 301);
}
}
Questa soluzione offre diversi vantaggi: è semplice da implementare, consente un controllo completo sulla logica del redirect e supporta condizioni personalizzate, risultando ideale per casi specifici. Inoltre, si basa sugli standard di Drupal e Symfony, garantendo compatibilità e buona manutenzione del codice. Tuttavia presenta anche alcuni svantaggi: ogni redirect richiede l’aggiunta di codice, rendendo l’approccio poco scalabile in presenza di numerosi redirect. Inoltre non è gestibile tramite l’interfaccia di amministrazione, limitando la possibilità per utenti non sviluppatori di modificare o aggiungere redirect in autonomia. È quindi una soluzione indicata soprattutto per redirect statici e controllati a livello di codice.
🔧Best Practices sulla gestione dei redirect
Di fronte alla gestione dei redirect, è fondamentale seguire alcune best practice per garantire sia un’ottima esperienza utente che il rispetto delle raccomandazioni SEO. Innanzitutto, utilizzare sempre il codice HTTP corretto: un 301 quando la risorsa è stata spostata in modo permanente, un 302 se si tratta di un reindirizzamento temporaneo. Evitare poi catene di redirect: indirizzare direttamente l’URL di partenza verso la destinazione finale riduce i tempi di caricamento e previene errori. Prima di mettere in produzione, testare ogni redirect su diversi browser e dispositivi per assicurarsi che vengano eseguiti correttamente e senza loop. Dal punto di vista SEO, i redirect 301 trasferiscono quasi tutto il “link juice” al nuovo indirizzo, mentre i 302 ne trattengono una parte; perciò è essenziale scegliere con cura il tipo di reindirizzamento. Infine, monitorare regolarmente le performance del sito: troppe redirezioni aggiungono latenza e possono influire negativamente sui tempi di risposta complessivi.