1

我正在尝试重写诸如/abc.htmlto之类的模式/search?xyz=abc。“abc”可以是任何东西。

我已经浏览了https://www.netlify.com/docs/redirects/上的文档

这是我现在的 _redirect 文件中的内容,但它似乎不起作用。请帮忙。

/*.html         /search?xyz=:splat        200
4

1 回答 1

4

免责声明:我为 netlify 工作

我们的重定向功能无法进行这样的重写。像 slugs ( /blog/:year/:month/:day/:title) 和 stars ( /assets/*) 这样的占位符仅作为完整路径组件匹配 - 即 URL 中斜线之间的内容或“此之后的所有内容 / 包括子目录中的文件”。

这不是一个不常见的功能请求,但我们的系统现在不能这样工作。

实现类似目标的一些方法:

  1. 通常您不打算重定向现有路径。 这部分文档演示了标准重定向 ( /articles/* /search?xyz=:splat 301) 将重定向所有缺少内容的请求 - 无论是 /articles/1 还是 /articles/deep/link/that/was/tpyoed.html - 使用 xyz 参数重定向到 /search路径名。这并不完全符合您的要求 - 但它可能是最接近的事情,您希望可以在 /search 页面中适当地处理路径。如果您在 /articles 下有任何内容,仍然会提供服务,而不是重定向,因为您没有!在重定向上放置 a 来强制它。

  2. 如果您有一个单独的页面应用程序,它执行自己的路由并使用历史推送状态重定向,您可以让路由器为您的内容做正确的事情,因为通常您的网站上只有一个 .html 页面,并且任何其他路径都将被重定向到它(路由器接管你给它的任何智能)

于 2018-04-26T13:34:03.597 回答