{"section":"known-issues","requestedLocale":"pt","requestedSlug":"o-link-canonico-mantem-a-barra-invertida-final-da-url-solicitada-nas-rotas-declaradas-no-arquivo-routesjson-do-tema","locale":"pt","slug":"o-link-canonico-mantem-a-barra-invertida-final-da-url-solicitada-nas-rotas-declaradas-no-arquivo-routesjson-do-tema","path":"docs/pt/known-issues/Store Framework/o-link-canonico-mantem-a-barra-invertida-final-da-url-solicitada-nas-rotas-declaradas-no-arquivo-routesjson-do-tema.md","branch":"main","content":">ℹ️ Este problema conhecido foi traduzido automaticamente do inglês.\n\n## Sumário\n\nEm páginas do Store Framework cuja rota é declarada apenas no arquivo `store/routes.json` do tema (sem `canonical` definido), o atributo `<link rel=\"canonical\">` é construído a partir da URL solicitada, incluindo a barra final. Tanto `/my-page` quanto `/my-page/` retornam 200 e cada um se declara como canônico:\n\n- `/my-page` retorna `<link rel=\"canonical\" href=\"https://store.example.com/my-page\"/>`\n- `/my-page/` retorna `<link rel=\"canonical\" href=\"https://store.example.com/my-page/\"/>`\n\nPortanto, o atributo canônico não consolida as duas URLs, e os mecanismos de busca podem indexá-las como duplicadas. Páginas de produtos e categorias não são afetadas (seu atributo canônico é normalizado sem a barra).\n\n## Simulação\n\n1. Em um tema do Store Framework, declare uma rota em store/routes.json sem um `canonical`, por exemplo:\n\n2. Publique e abra a página.\n\n3. Solicite a página sem e com uma barra no final e leia a tag canonical: `curl -s https://<store>/my-page | grep -o '<link[^>]*rel=\"canonical\"[^>]*>'` e `curl -s https://<store>/my-page/ | grep -o '<link[^>]*rel=\"canonical\"[^>]*>'`.\n\n4. Esperado: o mesmo canonical para ambos (sem a barra no final). Obtido: cada resposta ecoa o caminho solicitado.\n\n## Workaround\n\nDeclare a rota no arquivo `store/routes.json` do tema com uma barra invertida opcional no final de `path` e um `canonical` explícito sem ela:\n\n\"store.custom#my-page\": \\{ \"path\": \"/my-page(/)\", \"canonical\": \"/my-page\" \\}\n\nCom isso, tanto `/my-page` quanto `/my-page/` retornam 200 e declaram `https://store.example.com/my-page` como canônico. Definir `canonical` como igual a `path` é rejeitado pela compilação, por isso a barra invertida opcional (`(/)`) é necessária."}