-
Notifications
You must be signed in to change notification settings - Fork 223
/
Copy path404.html
27 lines (25 loc) · 1.21 KB
/
404.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<script>
// Check if the current path is versioned, if not, redirect to the default versioned path
const versions = ["stable"]
const defaultVersion = "stable"
const basePath = ""
const targetRedirectPath = "404" // path to redirect to, relative to basePath
// if path starts with version, redirect to versioned 404
let foundVersion = false
versions.forEach(version => {
const versionedPath = `${basePath}/${version}`;
if (window.location.pathname.startsWith(versionedPath)) {
// we need this foundVersion guard because the browser is fast and
// will keep the executing code below until the redirect happens
foundVersion = true;
window.location.href = `${versionedPath}/${targetRedirectPath}`
}
});
// if path doesn't start with any version, redirect to defaultVersion
// Replace it in href, so we keep hashes and query params
// Only replace first occurence of basePath
if (!foundVersion){
//window.location.href = window.location.href.replace(basePath, `${basePath}/${defaultVersion}`)
window.location.href = `https://${window.location.hostname}/${basePath}/${defaultVersion}`
}
</script>