Pose una domanda e ottieni un riassunto del documento facendo riferimento a questa pagina e al provider AI di tua scelta
Questo documento non è aggiornato, la versione base è stata aggiornata il 3 aprile 2026.
Vai alla documentazione in ingleseCronologia delle versioni
- "Aggiunta del routing delle locale basato su dominio tramite la configurazione routing.domains."v8.5.002/04/2026
Il contenuto di questa pagina è stato tradotto con un'IA.
Vedi l'ultima versione del contenuto originale in ingleseSe hai un’idea per migliorare questa documentazione, non esitare a contribuire inviando una pull request su GitHub.
Collegamento GitHub alla documentazioneCopia il Markdown del documento nella porta-documenti
Domini personalizzati
Intlayer supporta il routing delle locale basato su dominio, permettendoti di servire locale specifiche da hostname dedicati. Ad esempio, i visitatori cinesi possono essere indirizzati a intlayer.zh invece di intlayer.org/zh.
Come funziona
La mappa domains in routing associa ogni locale a un hostname. Intlayer utilizza questa mappa in due posti:
- Generazione di URL (
getLocalizedUrl): quando la locale di destinazione si trova su un dominio diverso dalla pagina corrente, viene restituito un URL assoluto (es.https://intlayer.zh/about). Quando entrambi i domini corrispondono, viene restituito un URL relativo (es./fr/about). - Proxy del server (Next.js & Vite): le richieste in entrata vengono reindirizzate o riscritte in base al dominio su cui arrivano.
Domini esclusivi vs condivisi
La distinzione chiave è l'esclusività:
- Dominio esclusivo - solo una locale è mappata su quell'hostname (es.
zh → intlayer.zh). Il dominio stesso identifica la locale, quindi nessun prefisso di locale viene aggiunto al percorso.https://intlayer.zh/aboutserve contenuti in cinese. - Dominio condiviso - più locale sono mappate sullo stesso hostname (es. sia
enchefrsono mappate suintlayer.org). Si applica il normale routing basato sui prefissi.intlayer.org/fr/aboutserve contenuti in francese.
Configurazione
Le locale non elencate in domains continuano a utilizzare il routing standard basato sui prefissi senza alcun override del dominio.
Generazione di URL
getLocalizedUrl produce automaticamente il tipo di URL corretto in base al contesto della chiamata.
Locale sullo stesso dominio (URL relativo)
Locale su un dominio diverso (URL assoluto)
Servire dal proprio dominio della locale
Rilevamento automatico del dominio corrente
currentDomain è facoltativo. Quando omesso, getLocalizedUrl lo risolve in questo ordine:
- L'hostname di un URL di input assoluto (es.
https://intlayer.org/about→intlayer.org). window.location.hostnamenegli ambienti browser.- Se nessuno dei due è disponibile (SSR senza opzione esplicita), viene restituito un URL relativo per le locale dello stesso dominio e non viene prodotto alcun URL assoluto - questo è il fallback sicuro.
getMultilingualUrls con domini
getMultilingualUrls chiama getLocalizedUrl per ogni locale, quindi produce un mix di URL relativi e assoluti a seconda del dominio del chiamante:
Questi URL assoluti sono pronti per essere utilizzati nei tag <link rel="alternate" hreflang="..."> per la SEO.
Comportamento del Proxy
Next.js
Il middleware intlayerProxy gestisce automaticamente il routing di dominio. Aggiungilo al tuo middleware.ts:
Redirect - la richiesta arriva sul dominio sbagliato per un determinato prefisso di locale:
Rewrite - la richiesta arriva sul dominio esclusivo della locale senza un prefisso:
Vite
Il plugin Vite intlayerProxy applica la stessa logica durante lo sviluppo:
Nota: Nello sviluppo locale di solito ti trovi sulocalhost, quindi i reindirizzamenti tra domini punteranno ai domini live piuttosto che a un'altra porta locale. Utilizza una sostituzione nel file hosts (es.127.0.0.1 intlayer.zh) o un reverse proxy se hai bisogno di testare il routing multi-dominio localmente.
Selettore della locale (Locale Switcher)
L'hook useLocale di next-intlayer gestisce automaticamente la navigazione consapevole del dominio. Quando un utente passa a una locale su un dominio diverso, l'hook esegue una navigazione di pagina completa (window.location.href) invece di un push del router lato client, perché il router di Next.js non può attraversare le origini.
Nessuna configurazione extra è richiesta - useLocale rileva internamente window.location.hostname e decide tra router.replace (stesso dominio) e window.location.href (dominio diverso).
SEO: link alternativi hreflang
Il routing basato su dominio è comunemente usato insieme a hreflang per dire ai motori di ricerca quale URL indicizzare per ogni lingua. Usa getMultilingualUrls per generare il set completo di URL alternativi:
Questo produce:
Utility di base
Apri la tabella in una finestra modale per visualizzare tutti i dati in modo chiaro
| Utility | Descrizione |
|---|---|
getLocalizedUrl(url, locale, { currentDomain }) | Restituisce un URL relativo o assoluto a seconda che la locale di destinazione sia sul dominio corrente o meno. |
getMultilingualUrls(url, { currentDomain }) | Restituisce una mappa degli URL localizzati per locale, mescolando relativi e assoluti secondo necessità. |
getPrefix(locale, { domains }) | Restituisce un prefisso vuoto per le locale con dominio esclusivo, altrimenti il prefisso normale. |