301 在不需要 Javascript 的捆绑反应项目中重定向,使用 Firebase 托管



我目前正在构建一个URL缩短器,并在其前端使用React。这是我的域名(假设example.com(链接到使用 Firebase Hosting 的地方。

我在试图弄清楚服务的重定向部分时有点挣扎,因为我希望这个重定向是"HTTP 本机"; 它不应该要求JS重定向,只是一个普通的301重定向。

缩短的 URL 如下所示:example.com/go/:linkId

当用户单击缩短的链接时,我的服务器应收到请求,找出链接到缩短 URL 的 ID 的 URL,并重定向到原始链接。

由于我不想涉及 JS,因此我尝试在firebase.json中使用redirects设置。起初,它看起来很有希望只是使用:

"redirects": [
{
"source": "/go/:linkId",
"destination": "<SERVER_URL>/go/:linkId"
}
]

这种方法有两个问题:

  1. 它不适用于本地主机,因为在运行 Webpack 开发服务器时不考虑 (AFAIK(firebase.json
  2. 无论如何,开发和生产环境都有不同的服务器 URL。我不想对 URL 进行硬编码,因为它不会让我在它们之间分开。

我正在考虑重定向到一个go.js文件或将存在于带有index.html的 dist 文件夹中的东西,但它不会解析为节点.js文件。

如果你有任何想法如何解决这个问题,我很高兴听到。

谢谢!

当您使用 Firebase CLI 时,重定向将在本地工作,即通过运行firebase serve.如果需要预处理源以获取最终分发,请在本地执行此操作,然后对该预处理步骤的输出调用firebase serve

最新更新