feat(lang): routage préfixé /fr/ et /en/ avec redirect JS langue sur les chemins non préfixés
- page-redirect sur / et tous les chemins sans préfixe : localStorage zektyc-lang puis navigator.language, défaut fr ; fallback FR si la page n'a pas de version EN - /en/ sert enfin la home EN (public/en/), fix de LANG_ROUTES.en - home EN générée à partir d'i18n.json (ld+json Organization/FAQPage valides) - i18n.js/components.js : switch de langue par préfixe + liens préfixés - anciennes URLs /zmap/en/* : 301 vers /en/zmap/* ; pages EN zmap déplacées vers le layout <page>/en/ standard - canonicals/hreflang fr-en-x-default sur toutes les pages statiques + sitemaps (équipe, zmap, archives, vitesses-par-route ajoutées) ; suppression du domaine obsolète zektyc.duckdns.org (robots, sitemap index, security.txt)
This commit is contained in:
parent
bf9b3ccf69
commit
370b3d8752
30 changed files with 566 additions and 124 deletions
|
|
@ -1,45 +1,73 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml">
|
||||
<url>
|
||||
<loc>https://zektyc.duckdns.org/en/</loc>
|
||||
<lastmod>2026-08-14</lastmod>
|
||||
<xhtml:link href="https://zektyc.duckdns.org/fr/" hreflang="fr" rel="alternate"/>
|
||||
<xhtml:link href="https://zektyc.duckdns.org/en/" hreflang="en" rel="alternate"/>
|
||||
<xhtml:link href="https://zektyc.duckdns.org/fr/" hreflang="x-default" rel="alternate"/>
|
||||
<loc>https://riricdev.tail5ea5cd.ts.net/en/</loc>
|
||||
<lastmod>2026-09-06</lastmod>
|
||||
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/fr/" hreflang="fr" rel="alternate"/>
|
||||
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/en/" hreflang="en" rel="alternate"/>
|
||||
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/fr/" hreflang="x-default" rel="alternate"/>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://zektyc.duckdns.org/en/blog/</loc>
|
||||
<loc>https://riricdev.tail5ea5cd.ts.net/en/blog/</loc>
|
||||
<lastmod>2026-08-14</lastmod>
|
||||
<xhtml:link href="https://zektyc.duckdns.org/fr/blog/" hreflang="fr" rel="alternate"/>
|
||||
<xhtml:link href="https://zektyc.duckdns.org/en/blog/" hreflang="en" rel="alternate"/>
|
||||
<xhtml:link href="https://zektyc.duckdns.org/fr/blog/" hreflang="x-default" rel="alternate"/>
|
||||
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/fr/blog/" hreflang="fr" rel="alternate"/>
|
||||
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/en/blog/" hreflang="en" rel="alternate"/>
|
||||
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/fr/blog/" hreflang="x-default" rel="alternate"/>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://zektyc.duckdns.org/en/fingerprint-test</loc>
|
||||
<loc>https://riricdev.tail5ea5cd.ts.net/en/equipe</loc>
|
||||
<lastmod>2026-08-14</lastmod>
|
||||
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/fr/equipe" hreflang="fr" rel="alternate"/>
|
||||
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/en/equipe" hreflang="en" rel="alternate"/>
|
||||
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/fr/equipe" hreflang="x-default" rel="alternate"/>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://riricdev.tail5ea5cd.ts.net/en/fingerprint-test</loc>
|
||||
<lastmod>2026-08-16</lastmod>
|
||||
<xhtml:link href="https://zektyc.duckdns.org/fr/fingerprint-test" hreflang="fr" rel="alternate"/>
|
||||
<xhtml:link href="https://zektyc.duckdns.org/en/fingerprint-test" hreflang="en" rel="alternate"/>
|
||||
<xhtml:link href="https://zektyc.duckdns.org/fr/fingerprint-test" hreflang="x-default" rel="alternate"/>
|
||||
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/fr/fingerprint-test" hreflang="fr" rel="alternate"/>
|
||||
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/en/fingerprint-test" hreflang="en" rel="alternate"/>
|
||||
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/fr/fingerprint-test" hreflang="x-default" rel="alternate"/>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://zektyc.duckdns.org/en/privacy-policy</loc>
|
||||
<loc>https://riricdev.tail5ea5cd.ts.net/en/privacy-policy</loc>
|
||||
<lastmod>2026-08-14</lastmod>
|
||||
<xhtml:link href="https://zektyc.duckdns.org/fr/privacy-policy" hreflang="fr" rel="alternate"/>
|
||||
<xhtml:link href="https://zektyc.duckdns.org/en/privacy-policy" hreflang="en" rel="alternate"/>
|
||||
<xhtml:link href="https://zektyc.duckdns.org/fr/privacy-policy" hreflang="x-default" rel="alternate"/>
|
||||
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/fr/privacy-policy" hreflang="fr" rel="alternate"/>
|
||||
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/en/privacy-policy" hreflang="en" rel="alternate"/>
|
||||
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/fr/privacy-policy" hreflang="x-default" rel="alternate"/>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://zektyc.duckdns.org/en/projets</loc>
|
||||
<loc>https://riricdev.tail5ea5cd.ts.net/en/projets</loc>
|
||||
<lastmod>2026-08-17</lastmod>
|
||||
<xhtml:link href="https://zektyc.duckdns.org/fr/projets" hreflang="fr" rel="alternate"/>
|
||||
<xhtml:link href="https://zektyc.duckdns.org/en/projets" hreflang="en" rel="alternate"/>
|
||||
<xhtml:link href="https://zektyc.duckdns.org/fr/projets" hreflang="x-default" rel="alternate"/>
|
||||
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/fr/projets" hreflang="fr" rel="alternate"/>
|
||||
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/en/projets" hreflang="en" rel="alternate"/>
|
||||
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/fr/projets" hreflang="x-default" rel="alternate"/>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://zektyc.duckdns.org/en/tos</loc>
|
||||
<loc>https://riricdev.tail5ea5cd.ts.net/en/tos</loc>
|
||||
<lastmod>2026-08-14</lastmod>
|
||||
<xhtml:link href="https://zektyc.duckdns.org/fr/tos" hreflang="fr" rel="alternate"/>
|
||||
<xhtml:link href="https://zektyc.duckdns.org/en/tos" hreflang="en" rel="alternate"/>
|
||||
<xhtml:link href="https://zektyc.duckdns.org/fr/tos" hreflang="x-default" rel="alternate"/>
|
||||
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/fr/tos" hreflang="fr" rel="alternate"/>
|
||||
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/en/tos" hreflang="en" rel="alternate"/>
|
||||
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/fr/tos" hreflang="x-default" rel="alternate"/>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://riricdev.tail5ea5cd.ts.net/en/zmap</loc>
|
||||
<lastmod>2026-08-17</lastmod>
|
||||
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/fr/zmap" hreflang="fr" rel="alternate"/>
|
||||
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/en/zmap" hreflang="en" rel="alternate"/>
|
||||
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/fr/zmap" hreflang="x-default" rel="alternate"/>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://riricdev.tail5ea5cd.ts.net/en/zmap/archives</loc>
|
||||
<lastmod>2026-08-17</lastmod>
|
||||
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/fr/zmap/archives" hreflang="fr" rel="alternate"/>
|
||||
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/en/zmap/archives" hreflang="en" rel="alternate"/>
|
||||
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/fr/zmap/archives" hreflang="x-default" rel="alternate"/>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://riricdev.tail5ea5cd.ts.net/en/zmap/road-speeds</loc>
|
||||
<lastmod>2026-08-17</lastmod>
|
||||
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/fr/zmap/vitesses-par-route" hreflang="fr" rel="alternate"/>
|
||||
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/en/zmap/road-speeds" hreflang="en" rel="alternate"/>
|
||||
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/fr/zmap/vitesses-par-route" hreflang="x-default" rel="alternate"/>
|
||||
</url>
|
||||
</urlset>
|
||||
|
|
|
|||
Loading…
Reference in a new issue