Reindirizzamenti URL senza pipeline pipeline-free-redirects

Per vari motivi, le organizzazioni riscrivono gli URL in un modo che causa un reindirizzamento 301 (o 302), il che significa che il browser viene reindirizzato a una pagina diversa.

Gli scenari includono:

  • Una pagina HTML rimossa, quindi l'utente viene portato a una pagina sostitutiva (a volte la home page) invece di visualizzare un errore 404 Page Not Found.
  • Pagina HTML rinominata.
  • Ottimizzazione SEO.

AEM as a Cloud Service offre diversi approcci per implementare i reindirizzamenti lato server, ma la strategia descritta in questo articolo, reindirizzamenti senza pipeline, è una buona scelta quando:

  • Le persone che gestiscono i reindirizzamenti sono utenti aziendali che non dispongono dell’accesso necessario per confermare le modifiche ai file nel controllo del codice sorgente o della possibilità di eseguire una pipeline di configurazione a livello web di Cloud Manager.
  • Il numero di reindirizzamenti varia da poche a decine di migliaia.
  • Si desidera scegliere l'opzione di un'interfaccia utente, che può essere creata come progetto personalizzato o utilizzando ACS Commons Redirect Map Manager o ACS Commons Redirect Manager.

Questa funzione si basa sulla capacità di AEM Apache/Dispatcher di caricare (o ricaricare) uno o più file di mappa di riscrittura posizionati in una posizione specifica nell’archivio di pubblicazione (in modo che sia scaricabile da AEM Publish). È importante ricordare che il modo in cui i file vengono ricevuti è al di fuori dell’ambito di questa funzione, ma puoi prendere in considerazione uno dei seguenti metodi:

  • Acquisizione della mappa di riscrittura come risorsa nell’interfaccia utente di authoring e pubblicazione.
  • Installazione di ACS Commons Redirect Map Manager (almeno versione 6.7.0 o successiva), che include un'interfaccia utente per la gestione dei mapping URL e può inoltre pubblicare il file di mapping di riscrittura.
  • Installazione di ACS Commons Redirect Manager (almeno versione 6.10.0 o successiva), che include anche un'interfaccia utente per gestire i mapping URL e può pubblicare anche il file di mapping di riscrittura.
  • Massima flessibilità scrivendo un'applicazione personalizzata. Ad esempio, un’interfaccia utente o un’interfaccia a riga di comando per gestire le mappature URL oppure un modulo per caricare una mappa di riscrittura, che utilizza quindi le API di AEM per pubblicare il file della mappa di riscrittura.
NOTE
Questa funzionalità richiede AEM versione 18311 o successiva.
NOTE
L'utilizzo di Gestione mappe di reindirizzamento da parte di questa funzionalità richiede ACS Commons versione 6.7.0 o successiva, mentre l'utilizzo di Gestione reindirizzamenti richiede la versione 6.10.0 o successiva.

Per una guida dettagliata all'implementazione, consulta l'esercitazione Implementazione di reindirizzamenti URL senza pipeline.

Mappa di riscrittura rewrite-map

Per impostazione predefinita, la mappa di riscrittura viene ricaricata (se modificata) dal server HTTP Apache ogni 300 secondi (il valore è configurabile). Il formato del file deve seguire il formato del file RewriteMap con mappa chiave-valore di testo normale descritto nella documentazione di Apache.

È necessario creare un file denominato managed-rewrite-maps.yaml per specificare la posizione del file di mappa di riscrittura e distribuirlo una sola volta, utilizzando la pipeline full stack di Cloud Manager o la pipeline a livello web. Il file deve essere creato nella cartella src/opt-in della configurazione di Dispatcher. Utilizzare la struttura di file in modalità flessibile.

Puoi configurarlo con il seguente pattern:

maps:
- name: my.map
  path: <path-in-publish-repository>/redirectmap.txt

Se, ad esempio, il metodo scelto per inserire il file di mappa di riscrittura è quello di acquisirlo in AEM come risorsa denominata mysite-redirectmap.txt e quindi pubblicarlo, è possibile specificare una cartella in /content/dam:

maps:
- name: my.map
  path: /content/dam/redirectmaps/mysite-redirectmap.txt

Successivamente, in un file di configurazione di Apache come rewrites/rewrite.rules o <yourfile>.vhost, è necessario configurare il file di mappa a cui fa riferimento la proprietà name (my.map nell'esempio precedente). Una volta caricato, il file di mappa viene salvato nell'archivio locale del dispatcher nel percorso fixed /tmp/rewrites/.

La direttiva RewriteMap deve indicare che i dati sono memorizzati in un formato di file di gestione del database (DBM) utilizzando il formato sdbm (DBM semplice) e che il percorso completo del file è derivato dal prefisso del percorso di archiviazione e dalla proprietà name.

Il resto della configurazione dipende dal formato di redirectmap.txt. Il formato più semplice, illustrato nell’esempio seguente, è una mappatura uno a uno tra l’URL originale e l’URL mappato:

# RewriteMap from managed rewrite maps
RewriteMap map.foo dbm=sdbm:/tmp/rewrites/my.map
RewriteCond ${map.foo:$1} !=""
RewriteRule ^(.*)$ ${map.foo:$1|/} [L,R=301]

Considerazioni considerations

Considera quanto segue:

  • Per impostazione predefinita, quando si carica una mappa di riscrittura, Apache si avvia senza attendere il caricamento dei file di mappa completi, e quindi possono esserci incoerenze temporanee fino al caricamento della mappa completa. Questa impostazione può essere modificata in modo che Apache attenda il caricamento dell’intero contenuto della mappa, ma l’avvio di Apache richiede più tempo. Per modificare questo comportamento in modo che Apache attenda, aggiungi wait:true al file managed-rewrite-maps.yaml.
  • Per modificare la frequenza tra i caricamenti, aggiungere ttl: <integer> al file managed-rewrite-maps.yaml. Ad esempio: ttl: 120.
  • Apache ha un limite di lunghezza di 1024 per le voci singole RewriteMap.

Tutorial tutorials

recommendation-more-help
fbcff2a9-b6fe-4574-b04a-21e75df764ab