如何将 404 重定向到起始页?
How to redirect 404 to start page?
我刚开始在 firebase 上托管网络应用程序。
使用 firebase cli
(firebase-tools) 的自动设置在我的 public 文件夹中创建了一个 404.html
文件。
但我不想看到自定义 404 错误页面,也不想看到来自 firebase 的默认页面。
我想将所有 404 重定向到起始页,以便应用程序无论如何都会被初始化。 (我的 webpack-dev-server
本地设置工作正常)
解决方法是将 index.html
中的相同内容放入 404.html
。但这会导致双倍的维护..
我在这里 https://firebase.google.com/docs/hosting/url-redirects-rewrites 找到了一些关于重定向配置的信息。
但是 404 错误类型的重定向是不可能的。
无法使用 .htaccess
文件。
我是否缺少更改此行为的正确位置,无论是在我的 firebase.json
文件中还是在 https://console.firebase.google.com/ 中??
不确定这是否适合你,我从来没有用 .htaccess
做过任何事情,但在我的情况下,我总是这样修复它:
您可以在 firebase.json
文件的重写部分中包含一个通配符路由作为最后一条路由,这样任何以前无人认领的路由都会匹配:
"rewrites": [
{
// route info here
},
{
// another route
},
{
// If it makes it here, it didn't match any previous routing
// Match all routes that get to this point and send them to the home page.
"source": "**",
"destination": "/index.html"
}
]
如果您不想留下 original/non-existent url(例如 https://example.com/asdf),您可以修改 404.html 源并将其替换为 js 重定向。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Page Not Found</title>
<script>
window.location.href = "/";
</script>
</head>
</html>
我刚开始在 firebase 上托管网络应用程序。
使用 firebase cli
(firebase-tools) 的自动设置在我的 public 文件夹中创建了一个 404.html
文件。
但我不想看到自定义 404 错误页面,也不想看到来自 firebase 的默认页面。
我想将所有 404 重定向到起始页,以便应用程序无论如何都会被初始化。 (我的 webpack-dev-server
本地设置工作正常)
解决方法是将 index.html
中的相同内容放入 404.html
。但这会导致双倍的维护..
我在这里 https://firebase.google.com/docs/hosting/url-redirects-rewrites 找到了一些关于重定向配置的信息。
但是 404 错误类型的重定向是不可能的。
无法使用 .htaccess
文件。
我是否缺少更改此行为的正确位置,无论是在我的 firebase.json
文件中还是在 https://console.firebase.google.com/ 中??
不确定这是否适合你,我从来没有用 .htaccess
做过任何事情,但在我的情况下,我总是这样修复它:
您可以在 firebase.json
文件的重写部分中包含一个通配符路由作为最后一条路由,这样任何以前无人认领的路由都会匹配:
"rewrites": [
{
// route info here
},
{
// another route
},
{
// If it makes it here, it didn't match any previous routing
// Match all routes that get to this point and send them to the home page.
"source": "**",
"destination": "/index.html"
}
]
如果您不想留下 original/non-existent url(例如 https://example.com/asdf),您可以修改 404.html 源并将其替换为 js 重定向。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Page Not Found</title>
<script>
window.location.href = "/";
</script>
</head>
</html>