我正在使用Vercel托管一个网站,并希望创建一个重定向,该重定向将匹配除根或文件之外的任何路由。
我当前的vercel.json
如下所示:
{
"redirects": [{ "source": "/:anything", "destination": "/" }]
}
这会匹配所有路径并重定向到根目录,但也会匹配文件(这些文件都存储在根文件夹中(。
所需的行为是:
example.com
>无重定向
example.com/foo
>example.com
example.com/bar
>example.com
example.com/ANYTHING_THAT_ISNT_A_FILE
>example.com
example.com/foo.js
>无重定向
example.com/bar.css
>无重定向
example.com/ANYTHING_THAT_IS_A_FILE.ext
>无重定向
大多数框架都支持自定义404页面。当找不到请求的页面时,您可以使用它重定向回主页。
只需添加一个包含以下内容的404.html
文件:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="refresh" content="0; URL=https://example.com" />
</head>
</html>
此404页面的内容将重定向到example.com
或者,如果找不到请求的页面,您可以配置routes
以307临时重定向响应。
在vercel.json
中添加以下内容:
{
"routes": [
{ "handle": "filesystem" },
{
"src": "/(.+)",
"status": 307,
"headers": { "Location": "/" }
}
]
}