使用S3静态托管的JavaScript会话历史管理?

时间:2013-09-14 06:35:48

标签: javascript amazon-web-services amazon-s3 url-redirection html5-history

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

现在问题是,此历史记录使用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,同时保留该网址(www.example.com/about).

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

感谢您的帮助。 :)

1 个答案:

答案 0 :(得分:0)

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

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

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

这会导致您的网站的索引文件在浏览器中加载。