Cloudflare Pages i Astro - Jak naprawić błąd ukośnika na końcu URL
Cloudflare Pages błąd z ukośnikiem na końcu URL
Jeśli wdrażasz statyczną stronę wygenerowaną przez framework SSG, taki jak Astro, na platformie Cloudflare Pages, możesz zauważyć że wszystkie strony zawierają przekierowanie 301 z ukośnikiem na końcu.
Czym jest problem?
Po wdrożeniu strony na Cloudflare Pages, wszystkie adresy URL bez końcowego ukośnika (trailing slash) są automatycznie przekierowywane do wersji z ukośnikiem. Na przykład:
/blog/wpis1→ przekierowanie 301 do/blog/wpis1//about→ przekierowanie 301 do/about/
Rozwiązanie problemu
Aby naprawić ten problem, musisz skonfigurować Astro tak, aby nie używało końcowych ukośników w adresach URL.
Znajdź plik konfiguracyjny
astro.config.mjsw głównym katalogu projektu (jeśli nie wiesz gdzie jest, możesz wyszukać po frazietrailingSlash)Upewnij się, że ustawienie
trailingSlashjest ustawione na"never"(lubfalsejeśli masz inny motyw Astro):
trailingSlash: "never",- Następnie dodaj lub zmodyfikuj sekcję
build, aby używała formatufile:
build: {
format: "file",
},Co to robi?
trailingSlash: "never"- informuje Astro, że adresy URL nie powinny kończyć się ukośnikiembuild.format: "file"- wymusza na Astro generowanie plików HTML bezpośrednio (np.wpis1.htmlzamiastwpis1/index.html)
Po zastosowaniu tej konfiguracji i ponownym wdrożeniu strony, problem z przekierowaniami 301 powinien zniknąć.
Potencjalny problem z canonical URL
IMPORTANTZmiana formatu budowania na
filemoże spowodować inny problem - generowanie nieprawidłowych adresów URL canonical, które mogą wskazywać na adresy z rozszerzeniem.html(np./blog/wpis1.html). Jeśli napotkasz ten problem, sprawdź mój artykuł o tym, jak naprawić problem z canonical URL w Astro i Cloudflare.
Alternatywa - hosting na Vercel
Warto wspomnieć, że taki problem nie występuje podczas wdrażania Astro na Vercel. Platforma ta natywnie obsługuje framework Astro i nie wprowadza automatycznych przekierowań związanych z końcowymi ukośnikami.
Więcej artykułów o tej tematyce, znajdziesz w kategorii cloudflare

