0

我目前正在开发一个主要使用 JavaScript (JS)历史的网站。

现在的问题是,此历史记录使用 URL 的路径名。例如,如果我将 S3 用作静态主机,并且第一次想要请求像 www.example.com/about 这样的 URL,S3 会将其重定向到 /about 文件夹,而不是加载根目录(www.example. com) 并让 JS 处理 /about。当然,这种行为在静态托管的情况下是绝对正常的,因此很棘手。

我只是想知道它是否可能适用于我的情况,使用 S3,其中基于根 (www.example.com/) 的每个链接都将始终引用根网站?简而言之,我希望 S3 完全忽略路径名。因此,如果我请求 www.example.com/about,它将仅加载位于 www.example.com/index.html 中的 index.html,同时保留 URL (www.example.com/about)。

如果这仍然不清楚,请考虑 JS 的 location.hash (#)。浏览器在向静态 Web 服务器发出请求时会忽略该哈希,然后在加载 Web 时,其中包含的 JS 将处理给定的哈希。所以我的情况可以通过在我的 URL 中使用“#”来完全解决,但是这次我想使用一个没有“#”的干净 URL。

谢谢您的帮助。:)

4

1 回答 1

0

没有办法让 S3 忽略路径并只返回根文件 (index.html)。最接近的方法是使用捕获所有请求的错误文件,但尽管这会加载您的 HTML 文件,但它总是会返回 404 状态。

如果您不想使用 URL 参数而不是哈希,则可以使用路径参数,如下所示:

www.yoursite.com/?folder/page.html

这将导致您网站的索引文件被加载到浏览器中。

于 2013-09-14T09:48:27.667 回答