Skip to content

Commit ae303ed

Browse files
authored
[Docs site] Flag unslashed source urls in redirects (#25615)
* [Docs site] Flag unslashed source urls in redirects * Update * update redirects for containers * update code * Update bin/validate-redirects.ts * Update bin/validate-redirects.ts * formatting
1 parent 7374ac6 commit ae303ed

File tree

2 files changed

+27
-9
lines changed

2 files changed

+27
-9
lines changed

bin/validate-redirects.ts

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ async function main() {
66
let numInfiniteRedirects = 0;
77
let numUrlsWithFragment = 0;
88
let numDuplicateRedirects = 0;
9+
let numNonSlashedRedirects = 0;
10+
11+
const validEndings = ["/", "*", ".xml", ".md", ".json", ".html"];
912

1013
const redirectSourceUrls: string[] = [];
1114

@@ -24,6 +27,11 @@ async function main() {
2427
numUrlsWithFragment++;
2528
}
2629

30+
if (!validEndings.some((ending) => from.endsWith(ending))) {
31+
console.log(`✘ Found unslashed source URLs:\n ${from}`);
32+
numNonSlashedRedirects++;
33+
}
34+
2735
if (redirectSourceUrls.includes(from)) {
2836
console.log(`✘ Found repeated source URL:\n ${from}`);
2937
numDuplicateRedirects++;
@@ -32,7 +40,12 @@ async function main() {
3240
}
3341
}
3442

35-
if (numInfiniteRedirects || numUrlsWithFragment || numDuplicateRedirects) {
43+
if (
44+
numInfiniteRedirects ||
45+
numUrlsWithFragment ||
46+
numDuplicateRedirects ||
47+
numNonSlashedRedirects
48+
) {
3649
console.log("\nDetected errors:");
3750

3851
if (numInfiniteRedirects > 0) {
@@ -47,6 +60,12 @@ async function main() {
4760
console.log(`- ${numDuplicateRedirects} repeated source URL(s)`);
4861
}
4962

63+
if (numNonSlashedRedirects > 0) {
64+
console.log(
65+
`- ${numNonSlashedRedirects} need slashes at the end of the source URL`,
66+
);
67+
}
68+
5069
console.log("\nPlease fix the errors above before merging :)");
5170
process.exit(1);
5271
} else {

public/__redirects

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
# homepage
2-
/api /api/ 301
32
/docs/ /directory/ 301
43
/products/ /directory/ 301
54
/zero-trust/ /products/?product-group=Cloudflare+One 301
@@ -401,6 +400,13 @@
401400
# Constellation
402401
/constellation/ /workers-ai/ 301
403402

403+
# Containers
404+
/containers/image-management/ /containers/platform-details/image-management/ 301
405+
/containers/scaling-and-routing/ /containers/platform-details/scaling-and-routing/ 301
406+
/containers/architecture/ /containers/platform-details/architecture/ 301
407+
/containers/durable-object-methods/ /containers/platform-details/durable-object-methods/ 301
408+
/containers/platform-details/ /containers/platform-details/architecture/ 301
409+
404410
# D1
405411
/d1/client-api/ /d1/worker-api/ 301
406412
/d1/build-with-d1/d1-client-api/ /d1/worker-api/ 301
@@ -2436,10 +2442,3 @@
24362442
/ai-gateway/providers/* /ai-gateway/usage/providers/:splat 301
24372443
/ai-gateway/guardrails/* /ai-gateway/features/guardrails/:splat 301
24382444
/ai-gateway/websockets-api/* /ai-gateway/usage/websockets-api/:splat 301
2439-
2440-
# Containers
2441-
/containers/image-management /containers/platform-details/image-management 301
2442-
/containers/scaling-and-routing /containers/platform-details/scaling-and-routing 301
2443-
/containers/architecture /containers/platform-details/architecture 301
2444-
/containers/durable-object-methods /containers/platform-details/durable-object-methods 301
2445-
/containers/platform-details /containers/platform-details/architecture 301

0 commit comments

Comments
 (0)