\n\n ```\n\n \n \n \n ```tsx\n import { useRewriteURL } from \"solid-intlayer\";\n\n const Layout = (props) => {\n useRewriteURL();\n return <>{props.children};\n };\n ```\n\n \n \n \n ```svelte\n \n\n ```\n\n \n\n\n## Integração com o Router & Proxies\n\nOs proxies server-side do Intlayer (Vite & Next.js) tratam automaticamente reescritas personalizadas para garantir consistência de SEO.\n\n1. **Reescritas Internas**: Quando um utilizador visita `/fr/a-propos`, o proxy mapeia internamente para `/fr/about` para que o seu framework corresponda à rota correta.\n2. **Redirecionamentos Autoritativos**: Se um utilizador digitar manualmente `/fr/about`, o proxy emite um redirecionamento 301/302 para `/fr/a-propos`, garantindo que os motores de busca indexem apenas uma versão da página.\n\n### Integração com Next.js\n\nA integração com Next.js é totalmente gerida através do middleware `intlayerProxy`.\n\n```typescript fileName=\"middleware.ts\"\nimport { intlayerProxy } from \"next-intlayer/middleware\";\nimport { NextRequest } from \"next/server\";\n\nexport function middleware(request: NextRequest) {\n return intlayerProxy(request);\n}\n```\n\n### Integração com Vite\n\nPara SolidJS, Vue e Svelte, o plugin Vite `intlayerProxy` gerencia as reescritas durante o desenvolvimento.\n\n```typescript fileName=\"vite.config.ts\"\nimport { defineConfig } from \"vite\";\nimport { intlayerProxy } from \"vite-intlayer\";\n\nexport default defineConfig({\n plugins: [intlayerProxy()],\n});\n```\n\n## Principais Funcionalidades\n\n### 1. Reescritas Multi-Contexto\n\nCada formatter gera um `RewriteObject` contendo regras especializadas para diferentes consumidores:\n\n- `url`: Otimizado para geração de URLs do lado do cliente (remove segmentos de locale).\n- `nextjs`: Preserva `[locale]` para o middleware do Next.js.\n- `vite`: Preserva `:locale` para os proxies do Vite.\n\n### 2. Normalização Automática de Padrões\n\nO Intlayer normaliza internamente todas as sintaxes de padrão (por exemplo, convertendo `[param]` para `:param`) para que o matching permaneça consistente independentemente do framework de origem.\n\n### 3. URLs canônicas de SEO\n\nAo impor redirecionamentos de caminhos canônicos para aliases localizados mais apresentáveis, o Intlayer evita problemas de conteúdo duplicado e melhora a descoberta do site.\n\n## Utilitários principais\n\n- `getLocalizedUrl(url, locale)`: Gera uma URL localizada respeitando as regras de reescrita.\n- `getCanonicalPath(path, locale)`: Resolve uma URL localizada de volta para o seu caminho canônico interno.\n- `getRewritePath(pathname, locale)`: Detecta se um pathname precisa ser corrigido para o seu alias localizado mais amigável.\n","description":"Saiba como configurar e usar reescritas de URL personalizadas no Intlayer para definir caminhos específicos por locale.","url":"https://intlayer.org/pt/doc/concept/custom_url_rewrites","datePublished":"2024-08-13","dateModified":"2026-01-26","version":"8.0.0","keywords":"Reescritas de URL Personalizadas, Roteamento, Internacionalização, i18n","license":"https://raw.githubusercontent.com/aymericzip/intlayer/refs/heads/main/LICENSE","audience":{"@type":"Audience","audienceType":"Desenvolvedores, Gerentes de Conteúdo"}}
    Autor:
    Criação:2024-08-13Última atualização:2026-01-26

    Implementação de Reescritas de URL Personalizadas

    O Intlayer suporta reescritas de URL personalizadas, permitindo que você defina caminhos específicos por locale que diferem da estrutura padrão /locale/path. Isso possibilita URLs como /about para inglês e /a-propos para francês, mantendo a lógica interna da aplicação canônica.

    Configuração

    Regras de reescrita personalizadas são configuradas na seção routing do seu arquivo intlayer.config.ts usando formatadores específicos do framework. Esses formatadores fornecem a sintaxe correta para o router que você prefere.

    intlayer.config.ts
    import { Locales, type IntlayerConfig } from "intlayer";import { nextjsRewrite } from "intlayer/routing";const config: IntlayerConfig = {  // ...  routing: {    mode: "prefix-no-default",    rewrite: nextjsRewrite({      "/[locale]/about": {        fr: "/[locale]/a-propos",        es: "/[locale]/acerca-de",      },      "/[locale]/products/[id]": {        fr: "/[locale]/produits/[id]",        es: "/[locale]/productos/[id]",      },    }),  },};export default config;

    Formatadores Disponíveis

    Intlayer fornece formatadores para todos os frameworks populares:

    • nextjsRewrite: Para Next.js App Router. Suporta [slug], [...slug] (1+), e [[...slug]] (0+).
    • svelteKitRewrite: Para SvelteKit. Suporta [slug], [...path] (0+), e [[optional]] (0-1).
    • reactRouterRewrite: Para React Router. Suporta :slug e * (0+).
    • vueRouterRewrite: Para Vue Router 4. Suporta :slug, :slug? (0-1), :slug* (0+), e :slug+ (1+).
    • solidRouterRewrite: Para Solid Router. Suporta :slug e *slug (0+).
    • tanstackRouterRewrite: Para TanStack Router. Suporta $slug e * (0+).
    • nuxtRewrite: Para Nuxt 3. Suporta [slug] e [...slug] (0+).
    • viteRewrite: Formatador genérico para qualquer projeto baseado em Vite. Normaliza a sintaxe para o proxy do Vite.

    Padrões Avançados

    O Intlayer normaliza internamente esses padrões para uma sintaxe unificada, permitindo correspondência de caminhos e geração mais sofisticadas:

    • Segmentos Opcionais: [[optional]] (SvelteKit) ou :slug? (Vue/React) são suportados.
    • Catch-all (Zero ou mais): [[...slug]] (Next.js), [...path] (SvelteKit/Nuxt) ou * (React/TanStack) permitem corresponder múltiplos segmentos.
    • Catch-all Obrigatório (Um ou mais): [...slug] (Next.js) ou :slug+ (Vue) garantem que pelo menos um segmento esteja presente.

    Correção de URL no Lado do Cliente: useRewriteURL

    Para garantir que a barra de endereço do navegador reflita sempre a URL localizada "bonita", o Intlayer fornece o hook useRewriteURL. Este hook atualiza silenciosamente a URL usando window.history.replaceState quando um usuário acessa um caminho canônico.

    Uso em Frameworks

    tsx
    'use client';import { useRewriteURL } from "next-intlayer";const MyLayout = ({ children }) => {  useRewriteURL(); // Corrige automaticamente /fr/about para /fr/a-propos  return <>{children}</>;};

    Integração com o Router & Proxies

    Os proxies server-side do Intlayer (Vite & Next.js) tratam automaticamente reescritas personalizadas para garantir consistência de SEO.

    1. Reescritas Internas: Quando um utilizador visita /fr/a-propos, o proxy mapeia internamente para /fr/about para que o seu framework corresponda à rota correta.
    2. Redirecionamentos Autoritativos: Se um utilizador digitar manualmente /fr/about, o proxy emite um redirecionamento 301/302 para /fr/a-propos, garantindo que os motores de busca indexem apenas uma versão da página.

    Integração com Next.js

    A integração com Next.js é totalmente gerida através do middleware intlayerProxy.

    middleware.ts
    import { intlayerProxy } from "next-intlayer/middleware";import { NextRequest } from "next/server";export function middleware(request: NextRequest) {  return intlayerProxy(request);}

    Integração com Vite

    Para SolidJS, Vue e Svelte, o plugin Vite intlayerProxy gerencia as reescritas durante o desenvolvimento.

    vite.config.ts
    import { defineConfig } from "vite";import { intlayerProxy } from "vite-intlayer";export default defineConfig({  plugins: [intlayerProxy()],});

    Principais Funcionalidades

    1. Reescritas Multi-Contexto

    Cada formatter gera um RewriteObject contendo regras especializadas para diferentes consumidores:

    • url: Otimizado para geração de URLs do lado do cliente (remove segmentos de locale).
    • nextjs: Preserva [locale] para o middleware do Next.js.
    • vite: Preserva :locale para os proxies do Vite.

    2. Normalização Automática de Padrões

    O Intlayer normaliza internamente todas as sintaxes de padrão (por exemplo, convertendo [param] para :param) para que o matching permaneça consistente independentemente do framework de origem.

    3. URLs canônicas de SEO

    Ao impor redirecionamentos de caminhos canônicos para aliases localizados mais apresentáveis, o Intlayer evita problemas de conteúdo duplicado e melhora a descoberta do site.

    Utilitários principais

    • getLocalizedUrl(url, locale): Gera uma URL localizada respeitando as regras de reescrita.
    • getCanonicalPath(path, locale): Resolve uma URL localizada de volta para o seu caminho canônico interno.
    • getRewritePath(pathname, locale): Detecta se um pathname precisa ser corrigido para o seu alias localizado mais amigável.